dcnum 0.27.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dcnum-0.27.3/.github/workflows/check.yml +44 -0
- dcnum-0.27.3/.github/workflows/deploy_pypi.yml +45 -0
- dcnum-0.27.3/.gitignore +162 -0
- dcnum-0.27.3/.readthedocs.yml +14 -0
- dcnum-0.27.3/CHANGELOG +412 -0
- dcnum-0.27.3/LICENSE +21 -0
- dcnum-0.27.3/PKG-INFO +65 -0
- dcnum-0.27.3/README.rst +35 -0
- dcnum-0.27.3/benchmark/.gitignore +3 -0
- dcnum-0.27.3/benchmark/Readme.md +17 -0
- dcnum-0.27.3/benchmark/benchmark.py +64 -0
- dcnum-0.27.3/benchmark/bm_logic_ctrl_job_runner.py +49 -0
- dcnum-0.27.3/benchmark/bm_segm_segmenter.py +93 -0
- dcnum-0.27.3/benchmark/bm_segm_segmenter_manager_thread.py +77 -0
- dcnum-0.27.3/benchmark/bm_write_chunk_writer.py +54 -0
- dcnum-0.27.3/benchmark/bm_write_queue_writer_thread.py +61 -0
- dcnum-0.27.3/docs/.gitignore +1 -0
- dcnum-0.27.3/docs/conf.py +86 -0
- dcnum-0.27.3/docs/extensions/github_changelog.py +75 -0
- dcnum-0.27.3/docs/index.rst +21 -0
- dcnum-0.27.3/docs/requirements.txt +9 -0
- dcnum-0.27.3/docs/sec_design.rst +88 -0
- dcnum-0.27.3/pyproject.toml +50 -0
- dcnum-0.27.3/setup.cfg +4 -0
- dcnum-0.27.3/src/dcnum/__init__.py +25 -0
- dcnum-0.27.3/src/dcnum/_version.py +34 -0
- dcnum-0.27.3/src/dcnum/common.py +15 -0
- dcnum-0.27.3/src/dcnum/feat/__init__.py +8 -0
- dcnum-0.27.3/src/dcnum/feat/event_extractor_manager_thread.py +151 -0
- dcnum-0.27.3/src/dcnum/feat/feat_background/__init__.py +7 -0
- dcnum-0.27.3/src/dcnum/feat/feat_background/base.py +243 -0
- dcnum-0.27.3/src/dcnum/feat/feat_background/bg_copy.py +35 -0
- dcnum-0.27.3/src/dcnum/feat/feat_background/bg_roll_median.py +327 -0
- dcnum-0.27.3/src/dcnum/feat/feat_background/bg_sparse_median.py +493 -0
- dcnum-0.27.3/src/dcnum/feat/feat_brightness/__init__.py +4 -0
- dcnum-0.27.3/src/dcnum/feat/feat_brightness/bright_all.py +132 -0
- dcnum-0.27.3/src/dcnum/feat/feat_brightness/common.py +9 -0
- dcnum-0.27.3/src/dcnum/feat/feat_contour/__init__.py +4 -0
- dcnum-0.27.3/src/dcnum/feat/feat_contour/contour.py +17 -0
- dcnum-0.27.3/src/dcnum/feat/feat_contour/moments.py +157 -0
- dcnum-0.27.3/src/dcnum/feat/feat_contour/volume.py +174 -0
- dcnum-0.27.3/src/dcnum/feat/feat_texture/__init__.py +3 -0
- dcnum-0.27.3/src/dcnum/feat/feat_texture/common.py +24 -0
- dcnum-0.27.3/src/dcnum/feat/feat_texture/tex_all.py +125 -0
- dcnum-0.27.3/src/dcnum/feat/gate.py +193 -0
- dcnum-0.27.3/src/dcnum/feat/queue_event_extractor.py +454 -0
- dcnum-0.27.3/src/dcnum/logic/__init__.py +8 -0
- dcnum-0.27.3/src/dcnum/logic/chunk_slot.py +226 -0
- dcnum-0.27.3/src/dcnum/logic/ctrl.py +840 -0
- dcnum-0.27.3/src/dcnum/logic/job.py +230 -0
- dcnum-0.27.3/src/dcnum/logic/json_encoder.py +28 -0
- dcnum-0.27.3/src/dcnum/logic/slot_register.py +116 -0
- dcnum-0.27.3/src/dcnum/logic/universal_worker.py +58 -0
- dcnum-0.27.3/src/dcnum/meta/__init__.py +3 -0
- dcnum-0.27.3/src/dcnum/meta/paths.py +31 -0
- dcnum-0.27.3/src/dcnum/meta/ppid.py +246 -0
- dcnum-0.27.3/src/dcnum/os_env_st.py +85 -0
- dcnum-0.27.3/src/dcnum/read/__init__.py +10 -0
- dcnum-0.27.3/src/dcnum/read/cache.py +199 -0
- dcnum-0.27.3/src/dcnum/read/const.py +20 -0
- dcnum-0.27.3/src/dcnum/read/detect_flicker.py +44 -0
- dcnum-0.27.3/src/dcnum/read/hdf5_concat.py +145 -0
- dcnum-0.27.3/src/dcnum/read/hdf5_data.py +629 -0
- dcnum-0.27.3/src/dcnum/read/mapped.py +100 -0
- dcnum-0.27.3/src/dcnum/segm/__init__.py +9 -0
- dcnum-0.27.3/src/dcnum/segm/segm_thresh.py +33 -0
- dcnum-0.27.3/src/dcnum/segm/segm_torch/__init__.py +23 -0
- dcnum-0.27.3/src/dcnum/segm/segm_torch/segm_torch_base.py +133 -0
- dcnum-0.27.3/src/dcnum/segm/segm_torch/segm_torch_mpo.py +74 -0
- dcnum-0.27.3/src/dcnum/segm/segm_torch/segm_torch_sto.py +121 -0
- dcnum-0.27.3/src/dcnum/segm/segm_torch/torch_model.py +129 -0
- dcnum-0.27.3/src/dcnum/segm/segm_torch/torch_postproc.py +93 -0
- dcnum-0.27.3/src/dcnum/segm/segm_torch/torch_preproc.py +115 -0
- dcnum-0.27.3/src/dcnum/segm/segmenter.py +437 -0
- dcnum-0.27.3/src/dcnum/segm/segmenter_manager_thread.py +83 -0
- dcnum-0.27.3/src/dcnum/segm/segmenter_mpo.py +354 -0
- dcnum-0.27.3/src/dcnum/segm/segmenter_sto.py +101 -0
- dcnum-0.27.3/src/dcnum/write/__init__.py +8 -0
- dcnum-0.27.3/src/dcnum/write/chunk_writer.py +83 -0
- dcnum-0.27.3/src/dcnum/write/event_stash.py +98 -0
- dcnum-0.27.3/src/dcnum/write/queue_writer_base.py +248 -0
- dcnum-0.27.3/src/dcnum/write/queue_writer_process.py +47 -0
- dcnum-0.27.3/src/dcnum/write/queue_writer_thread.py +9 -0
- dcnum-0.27.3/src/dcnum/write/writer.py +569 -0
- dcnum-0.27.3/src/dcnum.egg-info/PKG-INFO +65 -0
- dcnum-0.27.3/src/dcnum.egg-info/SOURCES.txt +141 -0
- dcnum-0.27.3/src/dcnum.egg-info/dependency_links.txt +1 -0
- dcnum-0.27.3/src/dcnum.egg-info/requires.txt +10 -0
- dcnum-0.27.3/src/dcnum.egg-info/top_level.txt +1 -0
- dcnum-0.27.3/tests/conftest.py +25 -0
- dcnum-0.27.3/tests/data/fmt-hdf5_cytoshot_extended-moments-features.zip +0 -0
- dcnum-0.27.3/tests/data/fmt-hdf5_cytoshot_full-features_2023.zip +0 -0
- dcnum-0.27.3/tests/data/fmt-hdf5_cytoshot_full-features_2024.zip +0 -0
- dcnum-0.27.3/tests/data/fmt-hdf5_cytoshot_full-features_legacy_allev_2023.zip +0 -0
- dcnum-0.27.3/tests/data/fmt-hdf5_shapein_empty.zip +0 -0
- dcnum-0.27.3/tests/data/fmt-hdf5_shapein_raw-with-variable-length-logs.zip +0 -0
- dcnum-0.27.3/tests/data/segm-torch-model_unet-dcnum-test_g1_910c2.zip +0 -0
- dcnum-0.27.3/tests/data/segm-torch-model_unet-dcnum-test_g2_17ec6.zip +0 -0
- dcnum-0.27.3/tests/data/segm-torch-test-data_unet-dcnum-test_g1_910c2.zip +0 -0
- dcnum-0.27.3/tests/helper_methods.py +103 -0
- dcnum-0.27.3/tests/requirements.txt +2 -0
- dcnum-0.27.3/tests/test_common_join.py +44 -0
- dcnum-0.27.3/tests/test_feat_background_base.py +159 -0
- dcnum-0.27.3/tests/test_feat_background_bg_copy.py +78 -0
- dcnum-0.27.3/tests/test_feat_background_bg_roll_median.py +237 -0
- dcnum-0.27.3/tests/test_feat_background_bg_sparsemed.py +408 -0
- dcnum-0.27.3/tests/test_feat_brightness.py +50 -0
- dcnum-0.27.3/tests/test_feat_event_extractor_manager.py +76 -0
- dcnum-0.27.3/tests/test_feat_gate.py +191 -0
- dcnum-0.27.3/tests/test_feat_haralick.py +115 -0
- dcnum-0.27.3/tests/test_feat_moments_based.py +348 -0
- dcnum-0.27.3/tests/test_feat_moments_based_extended.py +54 -0
- dcnum-0.27.3/tests/test_feat_volume.py +199 -0
- dcnum-0.27.3/tests/test_init.py +7 -0
- dcnum-0.27.3/tests/test_logic_chunk_slot.py +87 -0
- dcnum-0.27.3/tests/test_logic_job.py +105 -0
- dcnum-0.27.3/tests/test_logic_json.py +21 -0
- dcnum-0.27.3/tests/test_logic_pipeline.py +1352 -0
- dcnum-0.27.3/tests/test_meta_paths.py +42 -0
- dcnum-0.27.3/tests/test_meta_ppid_base.py +147 -0
- dcnum-0.27.3/tests/test_meta_ppid_bg.py +61 -0
- dcnum-0.27.3/tests/test_meta_ppid_data.py +45 -0
- dcnum-0.27.3/tests/test_meta_ppid_feat.py +24 -0
- dcnum-0.27.3/tests/test_meta_ppid_gate.py +24 -0
- dcnum-0.27.3/tests/test_meta_ppid_segm.py +60 -0
- dcnum-0.27.3/tests/test_read_basin.py +214 -0
- dcnum-0.27.3/tests/test_read_cache.py +82 -0
- dcnum-0.27.3/tests/test_read_concat_hdf5.py +127 -0
- dcnum-0.27.3/tests/test_read_detect_flicker.py +87 -0
- dcnum-0.27.3/tests/test_read_hdf5.py +406 -0
- dcnum-0.27.3/tests/test_read_hdf5_basins.py +343 -0
- dcnum-0.27.3/tests/test_read_hdf5_concat.py +29 -0
- dcnum-0.27.3/tests/test_read_hdf5_index_mapping.py +101 -0
- dcnum-0.27.3/tests/test_segm_base.py +141 -0
- dcnum-0.27.3/tests/test_segm_mpo.py +359 -0
- dcnum-0.27.3/tests/test_segm_no_mask_proc.py +52 -0
- dcnum-0.27.3/tests/test_segm_sto.py +294 -0
- dcnum-0.27.3/tests/test_segm_thresh.py +136 -0
- dcnum-0.27.3/tests/test_segm_torch.py +246 -0
- dcnum-0.27.3/tests/test_segm_torch_preproc.py +90 -0
- dcnum-0.27.3/tests/test_write_chunk_writer.py +48 -0
- dcnum-0.27.3/tests/test_write_queue_writer_thread.py +141 -0
- dcnum-0.27.3/tests/test_write_writer.py +509 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
name: Checks
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
pull_request:
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
build:
|
|
9
|
+
|
|
10
|
+
runs-on: ${{ matrix.os }}
|
|
11
|
+
strategy:
|
|
12
|
+
matrix:
|
|
13
|
+
python-version: ['3.10', '3.13']
|
|
14
|
+
os: [macos-latest, ubuntu-latest, windows-latest]
|
|
15
|
+
fail-fast: false
|
|
16
|
+
timeout-minutes: 30
|
|
17
|
+
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@main
|
|
20
|
+
with:
|
|
21
|
+
fetch-depth: 0
|
|
22
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
23
|
+
uses: actions/setup-python@main
|
|
24
|
+
with:
|
|
25
|
+
python-version: ${{ matrix.python-version }}
|
|
26
|
+
- name: Install dependencies
|
|
27
|
+
run: |
|
|
28
|
+
# prerequisites
|
|
29
|
+
python -m pip install --upgrade pip wheel
|
|
30
|
+
python -m pip install coverage flake8 pytest
|
|
31
|
+
- name: Install dcnum
|
|
32
|
+
run: |
|
|
33
|
+
pip install .[torch]
|
|
34
|
+
- name: List installed packages
|
|
35
|
+
run: |
|
|
36
|
+
pip freeze
|
|
37
|
+
- name: Lint with flake8
|
|
38
|
+
run: |
|
|
39
|
+
flake8 --exclude _version.py .
|
|
40
|
+
- name: Test with pytest
|
|
41
|
+
run: |
|
|
42
|
+
coverage run --source=dcnum -m pytest tests
|
|
43
|
+
- name: Upload coverage to Codecov
|
|
44
|
+
uses: codecov/codecov-action@v4
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
name: Release to PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- '*'
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
build_sdist:
|
|
10
|
+
name: Build source distribution
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@main
|
|
14
|
+
with:
|
|
15
|
+
fetch-depth: 0
|
|
16
|
+
|
|
17
|
+
- name: Build sdist
|
|
18
|
+
run: pipx run build --sdist
|
|
19
|
+
|
|
20
|
+
- name: publish
|
|
21
|
+
env:
|
|
22
|
+
TWINE_USERNAME: __token__
|
|
23
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_PWD }}
|
|
24
|
+
run: |
|
|
25
|
+
pipx install twine
|
|
26
|
+
twine upload --skip-existing dist/*
|
|
27
|
+
|
|
28
|
+
build_wheels:
|
|
29
|
+
name: Build wheel
|
|
30
|
+
runs-on: ubuntu-latest
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@main
|
|
33
|
+
with:
|
|
34
|
+
fetch-depth: 0
|
|
35
|
+
|
|
36
|
+
- name: Build sdist
|
|
37
|
+
run: pipx run build --wheel
|
|
38
|
+
|
|
39
|
+
- name: publish
|
|
40
|
+
env:
|
|
41
|
+
TWINE_USERNAME: __token__
|
|
42
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_PWD }}
|
|
43
|
+
run: |
|
|
44
|
+
pipx install twine
|
|
45
|
+
twine upload --skip-existing dist/*
|
dcnum-0.27.3/.gitignore
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
share/python-wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
MANIFEST
|
|
28
|
+
|
|
29
|
+
# PyInstaller
|
|
30
|
+
# Usually these files are written by a python script from a template
|
|
31
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
32
|
+
*.manifest
|
|
33
|
+
*.spec
|
|
34
|
+
|
|
35
|
+
# Installer logs
|
|
36
|
+
pip-log.txt
|
|
37
|
+
pip-delete-this-directory.txt
|
|
38
|
+
|
|
39
|
+
# Unit test / coverage reports
|
|
40
|
+
htmlcov/
|
|
41
|
+
.tox/
|
|
42
|
+
.nox/
|
|
43
|
+
.coverage
|
|
44
|
+
.coverage.*
|
|
45
|
+
.cache
|
|
46
|
+
nosetests.xml
|
|
47
|
+
coverage.xml
|
|
48
|
+
*.cover
|
|
49
|
+
*.py,cover
|
|
50
|
+
.hypothesis/
|
|
51
|
+
.pytest_cache/
|
|
52
|
+
cover/
|
|
53
|
+
|
|
54
|
+
# Translations
|
|
55
|
+
*.mo
|
|
56
|
+
*.pot
|
|
57
|
+
|
|
58
|
+
# Django stuff:
|
|
59
|
+
*.log
|
|
60
|
+
local_settings.py
|
|
61
|
+
db.sqlite3
|
|
62
|
+
db.sqlite3-journal
|
|
63
|
+
|
|
64
|
+
# Flask stuff:
|
|
65
|
+
instance/
|
|
66
|
+
.webassets-cache
|
|
67
|
+
|
|
68
|
+
# Scrapy stuff:
|
|
69
|
+
.scrapy
|
|
70
|
+
|
|
71
|
+
# Sphinx documentation
|
|
72
|
+
docs/_build/
|
|
73
|
+
|
|
74
|
+
# PyBuilder
|
|
75
|
+
.pybuilder/
|
|
76
|
+
target/
|
|
77
|
+
|
|
78
|
+
# Jupyter Notebook
|
|
79
|
+
.ipynb_checkpoints
|
|
80
|
+
|
|
81
|
+
# IPython
|
|
82
|
+
profile_default/
|
|
83
|
+
ipython_config.py
|
|
84
|
+
|
|
85
|
+
# pyenv
|
|
86
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
87
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
88
|
+
# .python-version
|
|
89
|
+
|
|
90
|
+
# pipenv
|
|
91
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
92
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
93
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
94
|
+
# install all needed dependencies.
|
|
95
|
+
#Pipfile.lock
|
|
96
|
+
|
|
97
|
+
# poetry
|
|
98
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
99
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
100
|
+
# commonly ignored for libraries.
|
|
101
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
102
|
+
#poetry.lock
|
|
103
|
+
|
|
104
|
+
# pdm
|
|
105
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
106
|
+
#pdm.lock
|
|
107
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
108
|
+
# in version control.
|
|
109
|
+
# https://pdm.fming.dev/#use-with-ide
|
|
110
|
+
.pdm.toml
|
|
111
|
+
|
|
112
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
113
|
+
__pypackages__/
|
|
114
|
+
|
|
115
|
+
# Celery stuff
|
|
116
|
+
celerybeat-schedule
|
|
117
|
+
celerybeat.pid
|
|
118
|
+
|
|
119
|
+
# SageMath parsed files
|
|
120
|
+
*.sage.py
|
|
121
|
+
|
|
122
|
+
# Environments
|
|
123
|
+
.env
|
|
124
|
+
.venv
|
|
125
|
+
env/
|
|
126
|
+
venv/
|
|
127
|
+
ENV/
|
|
128
|
+
env.bak/
|
|
129
|
+
venv.bak/
|
|
130
|
+
|
|
131
|
+
# Spyder project settings
|
|
132
|
+
.spyderproject
|
|
133
|
+
.spyproject
|
|
134
|
+
|
|
135
|
+
# Rope project settings
|
|
136
|
+
.ropeproject
|
|
137
|
+
|
|
138
|
+
# mkdocs documentation
|
|
139
|
+
/site
|
|
140
|
+
|
|
141
|
+
# mypy
|
|
142
|
+
.mypy_cache/
|
|
143
|
+
.dmypy.json
|
|
144
|
+
dmypy.json
|
|
145
|
+
|
|
146
|
+
# Pyre type checker
|
|
147
|
+
.pyre/
|
|
148
|
+
|
|
149
|
+
# pytype static type analyzer
|
|
150
|
+
.pytype/
|
|
151
|
+
|
|
152
|
+
# Cython debug symbols
|
|
153
|
+
cython_debug/
|
|
154
|
+
|
|
155
|
+
# PyCharm
|
|
156
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
157
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
158
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
159
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
160
|
+
.idea/
|
|
161
|
+
|
|
162
|
+
_version.py
|
dcnum-0.27.3/CHANGELOG
ADDED
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
0.27.3
|
|
2
|
+
- ref: remove scikit-image dependency
|
|
3
|
+
0.27.2
|
|
4
|
+
- setup: update dependency scipy >= 1.15.2
|
|
5
|
+
- setup: add upper version bound for dependencies
|
|
6
|
+
0.27.1
|
|
7
|
+
- enh: optimize torchsto segmentation (batch size, threshold on GPU)
|
|
8
|
+
- enh: add info logging for segmenters
|
|
9
|
+
0.27.0
|
|
10
|
+
- meta: increment DCNUM_PPID_GENERATION (segmentation with background, #47)
|
|
11
|
+
- fix: wrong `bg_off` background correction for segmentation (#47)
|
|
12
|
+
- fix: set maximum chunk size for writing to 1000 (speed)
|
|
13
|
+
- enh: align `HDF5ImageCache` chunk size to the underlying `h5py.Dataset` (#5)
|
|
14
|
+
- enh: load image data to shared arrays with `UniversalWorker` (#31)
|
|
15
|
+
- enh: use shared arrays for segmentation (#31)
|
|
16
|
+
- enh: improved start-up speed for MPO segmenters
|
|
17
|
+
- enh: add `image_chunk_size` argument for `HDF5Data`
|
|
18
|
+
- enh: quantify waiting times in pipeline steps
|
|
19
|
+
- enh: loading data from disk is done in a separate thread
|
|
20
|
+
- enh: globally increase the number of slots to 7
|
|
21
|
+
- enh: more accurate timing statistics
|
|
22
|
+
- enh: use `np.asarray` instead of `np.array` where possible (speed-up)
|
|
23
|
+
- enh: increase efficiency for label postprocessing (speed-up)
|
|
24
|
+
- bmk: add benchmarks for short pipeline run and segmenter manager thread
|
|
25
|
+
- ref: remove unused `start`/`stop` kwargs for `segment_batch`
|
|
26
|
+
- ref: make `segment_chunk` accept a `ChunkSlot` instance
|
|
27
|
+
- ref: remove deprecated `path` keyword argument for `HDF5Writer`
|
|
28
|
+
- ref: introduce "chunk slot register" architecture which encompasses
|
|
29
|
+
the new classes `SlotRegister`, `ChunkSlot` and `UniversalWorker`
|
|
30
|
+
- ref: rename `join_thread_helper` to `join_worker`
|
|
31
|
+
- ref: `QueueEventExtractor` fetches preloaded labels from `ChunkSlot`
|
|
32
|
+
- ref: rename `process_mask` to `process_labels`
|
|
33
|
+
0.26.0
|
|
34
|
+
- feat: data writing is now done in a separate process (#32)
|
|
35
|
+
- fix: `create_with_basins` should not add internal basins, but register them
|
|
36
|
+
- fix: ignore existing identical scalar features in `copy_features`
|
|
37
|
+
- enh: allow passing compression options via `DCNumPipelineJob`
|
|
38
|
+
- ref: migrate classes in `write` module to individual files
|
|
39
|
+
- ref: rename `DequeueWriterThread` to `ChunkWriter`
|
|
40
|
+
- ref: rename `QueueCollectorThread` to `QueueWriterThread`
|
|
41
|
+
- ref: use `multiprocessing.Value` `write_queue_size` to communicate
|
|
42
|
+
writer queue size to `EventExtractorManagerThread`
|
|
43
|
+
- ref: instantiate `ChunkWriter` in `QueueWriterBase.run`
|
|
44
|
+
- ref: add `common` submodule
|
|
45
|
+
- ref: remove deprecated `no_basins_in_output` argument for `DCNumPipelineJob`
|
|
46
|
+
0.25.11
|
|
47
|
+
- enh: align measurement identifier computation with that of dclab
|
|
48
|
+
- enh: new `get_measurement_identifier` method
|
|
49
|
+
- enh: allow to optionally store measurement identifier in basin metadata
|
|
50
|
+
- enh: measurement identifier check for basin data
|
|
51
|
+
0.25.10
|
|
52
|
+
- fix: search for validation strings in logs did not use re.MULTILINE
|
|
53
|
+
- enh: allow to validate torch model applicability based on meta values
|
|
54
|
+
0.25.9
|
|
55
|
+
- fix: md5 sum caused PermissionError on Windows for background computation
|
|
56
|
+
0.25.8
|
|
57
|
+
- fix: invalid type definition for `concatenated_hdf5_data`
|
|
58
|
+
- enh: make sure `HDF5Data.path` is converted to `pathlib.Path` if it is `str`
|
|
59
|
+
- docs: properly employ license MIT
|
|
60
|
+
- ref: move `concatenated_hdf5_data` to `read.hdf5_concat` submodule
|
|
61
|
+
0.25.7
|
|
62
|
+
- enh: `HDF5Writer.store_log` returns created dataset
|
|
63
|
+
- docs: add code reference using apidoc
|
|
64
|
+
0.25.6
|
|
65
|
+
- maintenance release
|
|
66
|
+
0.25.5
|
|
67
|
+
- enh: support unnamed table data in `HDF5Data`
|
|
68
|
+
- setup: pin scipy<1.15 due to https://github.com/scipy/scipy/issues/22333
|
|
69
|
+
0.25.4
|
|
70
|
+
- enh: support passing a single file to `concatenated_hdf5_data`
|
|
71
|
+
0.25.3
|
|
72
|
+
- enh: request single threaded operations when going into mp.Process (#17)
|
|
73
|
+
- enh: new module `dcnum.single_thread_osenv`
|
|
74
|
+
0.25.2
|
|
75
|
+
- setup: officially support numpy 2
|
|
76
|
+
- setup: pin dependencies
|
|
77
|
+
0.25.1
|
|
78
|
+
- fix: catch ValueError when computing relative path on different anchors
|
|
79
|
+
- ref: replace np.string_ with np.bytes_
|
|
80
|
+
- ref: remove unused `data` argument to QueueCollectorThread
|
|
81
|
+
- ref: minor speed-up for QueueCollectorThread
|
|
82
|
+
0.25.0
|
|
83
|
+
- feat: identify flickering in raw data via dcnum.read.detect_flickering
|
|
84
|
+
- fix: handle out-of-bounds slice indexing for BaseImageChunkCache
|
|
85
|
+
- fix: np.bool_ and np.floating not recognized in PPID parsing
|
|
86
|
+
0.24.0
|
|
87
|
+
- feat: add support for internal basins
|
|
88
|
+
- feat: "image_bg" as internal basin for "sparsemed" background computer
|
|
89
|
+
- fix: "sparsmed" background computer attributed background images with
|
|
90
|
+
an offset of `split_time` (the fist event obtained the background image
|
|
91
|
+
of the first event of the first second and so on)
|
|
92
|
+
- enh: support numpy indexing for mapped basins
|
|
93
|
+
- enh: add new `write.copy_basins` method
|
|
94
|
+
- ref: return `h5py.Group` in `HDF5Data.get_basin_data` instead of
|
|
95
|
+
a basin `HDF5Data` instance
|
|
96
|
+
- ref: perform "plumbing" before "cleanup" in pipeline
|
|
97
|
+
- ref: increment DCNUM_PPID_GENERATION to 11
|
|
98
|
+
0.23.4
|
|
99
|
+
- enh: run set_num_interop_threads(1) for torchmpo segmenter
|
|
100
|
+
0.23.3
|
|
101
|
+
- fix: ignore non-file-type-like basins
|
|
102
|
+
- fix: workaround for slow reading from HDF5 (don't use index arrays)
|
|
103
|
+
- fix: avoid excessive stalling when writer is slow
|
|
104
|
+
0.23.2
|
|
105
|
+
- enh: add DCNumPipelineJob.validate method
|
|
106
|
+
- enh: list Python libraries used in job log
|
|
107
|
+
- setup: change required pytorch version from 2.3 to 2.2 (hardware support)
|
|
108
|
+
0.23.1
|
|
109
|
+
- enh: support passing custom default arguments to get_class_method_info
|
|
110
|
+
- tests: fix torch preprocessing tests
|
|
111
|
+
0.23.0
|
|
112
|
+
- feat: implement segmentation using PyTorch models
|
|
113
|
+
- fix: always compute image_bg if it is not in the input file
|
|
114
|
+
- enh: introduce `Segmenter.validate_applicability` method
|
|
115
|
+
0.22.1
|
|
116
|
+
- fix: compute pipeline identifier of origin dataset for basin mapping
|
|
117
|
+
0.22.0
|
|
118
|
+
- fix: GPUSegmenter did not perform mask postprocessing
|
|
119
|
+
(this was not actually fixed in 0.21.0)
|
|
120
|
+
- tests: implement mock STO segmenter for testing (#3)
|
|
121
|
+
- tests: add tests for bg_off in segmentation
|
|
122
|
+
- ref: increment DCNUM_PPID_GENERATION to 10
|
|
123
|
+
- ref: renamed CPUSegmenter to MPOSegmenter
|
|
124
|
+
- ref: renamed GPUSegmenter to STOSegmenter
|
|
125
|
+
0.21.4
|
|
126
|
+
- fix: division by zero error when computing stall time
|
|
127
|
+
0.21.3
|
|
128
|
+
- fix: negative stall time in log messages
|
|
129
|
+
0.21.2
|
|
130
|
+
- fix: negative argument for time.sleep
|
|
131
|
+
0.21.1
|
|
132
|
+
- enh: support boolean images in mask postprocessing
|
|
133
|
+
0.21.0
|
|
134
|
+
- ref: enable mask postprocessing by default for all segmenters
|
|
135
|
+
- ref: increment DCNUM_PPID_GENERATION to 9
|
|
136
|
+
0.20.4
|
|
137
|
+
- fix: slot_chunks were not performed in increasing order, making it
|
|
138
|
+
impossible for writer to continue writing and consequent OOM
|
|
139
|
+
- enh: reserve one CPU for writer thread and control logic
|
|
140
|
+
- enh: disentangle logging and debugging keyword arguments
|
|
141
|
+
- enh: do not initialize slot_chunks and slot_states with lock
|
|
142
|
+
0.20.3
|
|
143
|
+
- enh: improve strategy for stalling for slow writer
|
|
144
|
+
0.20.2
|
|
145
|
+
- ref: remove __init__ from SegmentThresh
|
|
146
|
+
0.20.1
|
|
147
|
+
- fix: relative basin locations not written correctly
|
|
148
|
+
- enh: increase deque size threshold for waiting for writer
|
|
149
|
+
0.20.0
|
|
150
|
+
- feat: support reading mapped basins
|
|
151
|
+
- feat: support writing mapped-basin-based output files
|
|
152
|
+
- fix: copy "bg_off" data to output file when copying background data
|
|
153
|
+
- enh: allow to slice BaseImageChunkCache
|
|
154
|
+
- enh: sort logs, tables and basins for reproducible access
|
|
155
|
+
- enh: add more timing information in logs
|
|
156
|
+
- ref: background progress value is now a double between 0 and 1
|
|
157
|
+
0.19.1
|
|
158
|
+
- enh: support steps when specifying data slices in `index_mapping`
|
|
159
|
+
0.19.0
|
|
160
|
+
- enh: elevate `HDF5Data`s `index_mapping` to pipeline identifier status
|
|
161
|
+
(this changes the pipeline identifier)
|
|
162
|
+
- enh: improve sanity checks for `BackgroundRollMed`
|
|
163
|
+
0.18.0
|
|
164
|
+
- BREAKING CHANGE: mask postprocessing did a morphological opening instead
|
|
165
|
+
of a morphological closing, failing to remove spurious noise
|
|
166
|
+
- BREAKING CHANGE: perform first fill_holes and then closing_disk in mask
|
|
167
|
+
postprocessing
|
|
168
|
+
- feat: allow to specify ranges when creating an HDF5Data instance to
|
|
169
|
+
enable e.g. processing only a portion of an input file
|
|
170
|
+
- feat: volume computation via contour revolve algorithm (#23)
|
|
171
|
+
- feat: background offset (flickering) correction via the
|
|
172
|
+
"offset_correction" keyword for the "sparsemed" background computer
|
|
173
|
+
and "bg_off" everywhere else
|
|
174
|
+
- enh: allow creating HDF5Writer from h5py.File
|
|
175
|
+
- fix: mask postprocessing did a morphological opening instead
|
|
176
|
+
of a morphological closing, failing to remove spurious noise
|
|
177
|
+
- fix: remove mask ppid part for segmenters that do not use it
|
|
178
|
+
- fix: mask postprocessing with "fill_holes" using `cv2.floodFill`
|
|
179
|
+
sometimes segmented the entire frame if the upper left pixel was not
|
|
180
|
+
set to background
|
|
181
|
+
- enh: perform first fill_holes and then closing_disk in mask
|
|
182
|
+
postprocessing
|
|
183
|
+
- enh: pop read-cache items before adding a new one
|
|
184
|
+
- enh: allow to request the raw contour from `moments_based_features`
|
|
185
|
+
- ref: increment DCNUM_PPID_GENERATION to 8
|
|
186
|
+
- ref: added new super class `BaseImageChunkCache`
|
|
187
|
+
- ref: use HDF5Writer in Background class
|
|
188
|
+
- ref: minor cleanup
|
|
189
|
+
- ref: rename submodule `feat_moments` to `feat_contour`
|
|
190
|
+
- ref: remove unused `name` property from `Background` class
|
|
191
|
+
0.17.2
|
|
192
|
+
- fix: make sure unsupported features are not propagated in
|
|
193
|
+
`concatenated_hdf5_data` (#27)
|
|
194
|
+
0.17.1
|
|
195
|
+
- ref: remove "bg_med" and "index_online" from protected scalar features,
|
|
196
|
+
because "bg_med" may change due to a different background computation
|
|
197
|
+
method and "index_online" enumerates events from online segmentation
|
|
198
|
+
0.17.0
|
|
199
|
+
- feat: allow to register topical search paths
|
|
200
|
+
- ref: remove deprecated `get_ppid_from_kwargs` methods
|
|
201
|
+
- ref: remove deprecated `preselect` and `ptp_median` keyword
|
|
202
|
+
arguments from `QueueEventExtractor`
|
|
203
|
+
- ref: remove deprecated "key" from `get_class_method_info` info dict
|
|
204
|
+
- ref: issue UserWarning instead of DeprecationWarning when checking
|
|
205
|
+
segmenter keyword arguments
|
|
206
|
+
- ref: remove pixel size check for HDF5 data
|
|
207
|
+
- ref: remove unused `_get_model_file` from GPUSegmenter
|
|
208
|
+
0.16.8
|
|
209
|
+
- fix: correctly set number of workers for CPUSegmenter
|
|
210
|
+
- enh: update list of environment variables that should be set to
|
|
211
|
+
disable multithreading in subprocesses
|
|
212
|
+
0.16.7
|
|
213
|
+
- fix: if the writer dequeue fills up, stall the feature extractor
|
|
214
|
+
- enh: optimize DequeWriterThread loop
|
|
215
|
+
- enh: minor optimization in HDF5Writer.require_feature
|
|
216
|
+
0.16.6
|
|
217
|
+
- fix: correctly handle mask images with no background on border
|
|
218
|
+
- fix: enforce user-defined features in concatenated_hdf5_data
|
|
219
|
+
- fix: Gate.features returned duplicate entries
|
|
220
|
+
- ref: cache empty border image creation for clear_border
|
|
221
|
+
- ref: rename internal background worker classes
|
|
222
|
+
- ref: simplify Gate initialization
|
|
223
|
+
- ref: Gate instance does not have to keep a reference to the data
|
|
224
|
+
- ref: better box_gates management for Gate class
|
|
225
|
+
- tests: increase coverage
|
|
226
|
+
0.16.5
|
|
227
|
+
- fix: replace unreliable Queue.empty and Queue.qsize (macOS support)
|
|
228
|
+
0.16.4
|
|
229
|
+
- fix: there was no progress for background copying
|
|
230
|
+
- enh: detect data files that contain no events
|
|
231
|
+
- tests: add test for sparsemed bg worker
|
|
232
|
+
- tests: add test for logic json encoder
|
|
233
|
+
0.16.3
|
|
234
|
+
- enh: define valid DCNumJobRunner state
|
|
235
|
+
- enh: more robust computation of progress
|
|
236
|
+
- enh: use HDF5Data when loading input data for background computation
|
|
237
|
+
- enh: automatically split segmenters and extractors equally
|
|
238
|
+
- ref: reduce default image cache size from 5 to 2
|
|
239
|
+
- ref: move dataset generation default kwargs to writer submodule
|
|
240
|
+
- ref: warn above 0.5% of discarded events in EventExtractorManagerThread
|
|
241
|
+
0.16.2
|
|
242
|
+
- fix: ignore empty HDF5 datasets when copying metadata
|
|
243
|
+
- fix: logging from subprocesses did not work as expected
|
|
244
|
+
- enh: warn user about total number of invalid masks
|
|
245
|
+
- enh: introduce DCNumJobRunner.error_tb for errors happening in threads
|
|
246
|
+
- enh: improve logging verbosity
|
|
247
|
+
- enh: append job information as log entry in DCNumJobRunner output file
|
|
248
|
+
- enh: set chunk size for all feature data to 1MiB in HDF5Writer
|
|
249
|
+
- ref: removed close_queues argument from EventExtractor init
|
|
250
|
+
- ref: rename event_count with image_count in background computation
|
|
251
|
+
- ref: do not print anything to stdout when computing background data
|
|
252
|
+
- ref: use data from background computer in DCNumJobRunner.get_status
|
|
253
|
+
0.16.1
|
|
254
|
+
- fix: when checking for ppid kwargs, allow kwargs defined in `__init__`
|
|
255
|
+
- ref: use kwonly arguments for segmenter `__init__` method
|
|
256
|
+
- tests: set environment variables so that libraries use one thread only
|
|
257
|
+
0.16.0
|
|
258
|
+
- feat: implement "copy" background class
|
|
259
|
+
- fix: handle small kernel size before background computation (#16)
|
|
260
|
+
- fix: update experiment:run identifier for dclab-user convenience
|
|
261
|
+
- fix: make sure output directory exists for pipeline job
|
|
262
|
+
- fix: forward debugging flag to SegmenterManagerThread
|
|
263
|
+
- ref: reduced minimum frame count for rolling median background
|
|
264
|
+
computation to kernel size
|
|
265
|
+
0.15.0
|
|
266
|
+
- BREAKING CHANGE: Remove preselection capabilities, because it is not
|
|
267
|
+
well integrated into the pipeline. For more information, please see
|
|
268
|
+
issue #15.
|
|
269
|
+
- feat: introduce logic submodule for running pipelines
|
|
270
|
+
- feat: implement HDF5Writer.store_log
|
|
271
|
+
- enh: add Segmenter.hardware_processor property
|
|
272
|
+
- enh: introduce pipeline identifier for data pixel size
|
|
273
|
+
- enh: reduce pixel_size accuracy to 8 digits after the decimal point
|
|
274
|
+
for pipeline reproducibility
|
|
275
|
+
- enh: warn the user when creating a basin-based file without basin paths
|
|
276
|
+
- ref: deprecate pixel size correction in HDF5Data
|
|
277
|
+
- ref: increment DCNUM_PPID_GENERATION to 7
|
|
278
|
+
- ref: several changes and deprecations in the PPID helper functions
|
|
279
|
+
- build: change flat-layout to src-layout (issues with editable installs)
|
|
280
|
+
0.14.0
|
|
281
|
+
- fix: protected features (e.g. time, frame) were not included in ouptut
|
|
282
|
+
files when the input file was basin-based
|
|
283
|
+
- ref: increment DCNUM_PPID_GENERATION to 6
|
|
284
|
+
0.13.3
|
|
285
|
+
- fix: correctly raise KeyError for missing image-based feature from
|
|
286
|
+
`HDF5Data._image_cache`
|
|
287
|
+
0.13.2
|
|
288
|
+
- fix: properly convert variable-length string logs in `copy_metadata`
|
|
289
|
+
0.13.1
|
|
290
|
+
- fix: wrong event count in logs
|
|
291
|
+
- ref: np.product is deprecated in numpy 2.0
|
|
292
|
+
0.13.0
|
|
293
|
+
- feat: support writing file-based HDF5 basins (#11)
|
|
294
|
+
- feat: support reading file-based HDF5 basins (#11)
|
|
295
|
+
- feat: implement `create_with_basins` convenience method (#11)
|
|
296
|
+
- fix: correctly support passing an ndarray to BackgroundSparseMed
|
|
297
|
+
instead of an input file path
|
|
298
|
+
- fix: BackgroundSparseMed did not work for datasets of length < 100
|
|
299
|
+
- fix: bad f-string in BackgroundSparseMed
|
|
300
|
+
- enh: create a default basin-based output file for background computation
|
|
301
|
+
- ref: unite initialization code of background computers in base class
|
|
302
|
+
- ref: define context managers of background computers in base class
|
|
303
|
+
- ref: remove functools.cache decorator from HDF5Data
|
|
304
|
+
- tests: add tests for BackgroundSparseMed
|
|
305
|
+
0.12.3
|
|
306
|
+
- fix: background computation with sparsemed did not work
|
|
307
|
+
- enh: support passing paths as strings to Background class
|
|
308
|
+
0.12.2
|
|
309
|
+
- enh: more efficient computation of inert_ratio_prnc feature (#6)
|
|
310
|
+
- enh: more efficient computation of tilt feature (#6)
|
|
311
|
+
- enh: feature computation for area_um_raw, deform_raw, eccentr_prnc,
|
|
312
|
+
per_ratio, and per_um_raw
|
|
313
|
+
- ref: increment DCNUM_PPID_GENERATION to 5
|
|
314
|
+
0.12.1
|
|
315
|
+
- fix: avoid NaN-valued features due to invalid contours (#9)
|
|
316
|
+
- ref: increment DCNUM_PPID_GENERATION to 4
|
|
317
|
+
0.12.0
|
|
318
|
+
- ref: always use "spawn" for creating new processes to avoid race
|
|
319
|
+
conditions with Python threading.Lock upon forking on POSIX
|
|
320
|
+
- enh: some multiprocessing values in CPUSegmenter can be raw
|
|
321
|
+
0.11.13
|
|
322
|
+
- enh: wait for event queue to empty before attempting to join
|
|
323
|
+
QueueEventExtractor processes
|
|
324
|
+
0.11.12
|
|
325
|
+
- enh: explicitly close event queue in QueueEventExtractor
|
|
326
|
+
0.11.11
|
|
327
|
+
- fix: QueueCollectorThread hangs indefinitely because of a missing
|
|
328
|
+
EventStash.is_complete check
|
|
329
|
+
- tests: increase coverage for queue_collector_thread submodule
|
|
330
|
+
0.11.10
|
|
331
|
+
- fix: GPUSegmenter does not remove model_file from passed kwargs anymore
|
|
332
|
+
0.11.9
|
|
333
|
+
- fix: properly support table data of length 1
|
|
334
|
+
- tests: make sure all segmenters have clear type definitions
|
|
335
|
+
0.11.8
|
|
336
|
+
- reg: do not close the background thread of the event queue
|
|
337
|
+
0.11.7
|
|
338
|
+
- enh: add more debugging messages for feature extraction workers
|
|
339
|
+
0.11.6
|
|
340
|
+
- enh: add more debugging messages for feature extraction workers
|
|
341
|
+
0.11.5
|
|
342
|
+
- setup: fix bad package discovery
|
|
343
|
+
0.11.4
|
|
344
|
+
- fix: properly handle empty logs
|
|
345
|
+
0.11.3
|
|
346
|
+
- fix: make sure values in tables dictionary are one-dimensional
|
|
347
|
+
0.11.2
|
|
348
|
+
- meta: increment pipeline ID (texture feature computation)
|
|
349
|
+
- fix: HDF5Data was not pickable
|
|
350
|
+
- fix: HDF5Data did not properly handle tables
|
|
351
|
+
- enh: add context manager for CPUSegmenter
|
|
352
|
+
- enh: record and log execution time of segmentation and feature extraction
|
|
353
|
+
- enh: properly handle border case for computing contour-moments
|
|
354
|
+
- enh: properly handle empty images/masks in haralick texture features
|
|
355
|
+
- tests: do not use numba's JIT during testing (coverage)
|
|
356
|
+
0.11.1
|
|
357
|
+
- fix: fix GPUSegmenter labeling
|
|
358
|
+
0.11.0
|
|
359
|
+
- feat: introduce GPUSegmenter base class
|
|
360
|
+
- fix: handle bytes-values in HDF5 attributes
|
|
361
|
+
- ref: correctly introduce `requires_background_correction` for segmenters
|
|
362
|
+
- setup: don't requrie cibuildwheel
|
|
363
|
+
0.10.0
|
|
364
|
+
- enh: some minor improvements in efficiency
|
|
365
|
+
- ref: increment DCNUM_PPID_GENERATION for the sake of clarity
|
|
366
|
+
- ref: unify dealing with num_workers and debugging
|
|
367
|
+
0.0.9
|
|
368
|
+
- fix: properly propagate event extraction keyword arguments
|
|
369
|
+
- fix: QueueCollectorThread used uint16 for enumerating indices
|
|
370
|
+
- fix: handle case where number of events is not multiple of chunk_size
|
|
371
|
+
- enh: reduce thread waiting times
|
|
372
|
+
- enh: add bounds check for image cache
|
|
373
|
+
0.0.8
|
|
374
|
+
- feat: introduce QueueCollectorThread
|
|
375
|
+
- feat: introduce SegmenterManagerThread
|
|
376
|
+
- feat: instroduce EventExtractorManagerThread and corresponding workers
|
|
377
|
+
- enh: minor improvements for HDF5ImageCache and ImageCorrCache
|
|
378
|
+
- enh: use data size as cache size if smaller than requested chunk size
|
|
379
|
+
- enh: return dictionary for brightness feature computation
|
|
380
|
+
- enh: allow to pass a single image for brightness feature computation
|
|
381
|
+
- enh: allow to pass a single image for texture feature computation
|
|
382
|
+
- enh: make sure that masks are written as uint8 to HDF5 files
|
|
383
|
+
- ref: haralick texture computation now returns dict instead of recarray
|
|
384
|
+
- ref: renamed HDF5WriterThread to DequeWriterThread
|
|
385
|
+
- ref: renamed feature submodules (prepended "feat_")
|
|
386
|
+
0.0.7
|
|
387
|
+
- enh: dataset keyword arguments and mode HDF5WriterThread
|
|
388
|
+
- enh: speed-up of brightness feature computation
|
|
389
|
+
0.0.6
|
|
390
|
+
- feat: add HDF5Writer and HDF5WriterThread classes in write submodule
|
|
391
|
+
- feat: segmenters compute labeled images instead of masks
|
|
392
|
+
- enh: introduce iter_chunks for cached image data
|
|
393
|
+
- ref: do not filter for contour length
|
|
394
|
+
- ref: rename feat.background.get_available_background_methods
|
|
395
|
+
- ref: store PPID information in dataset metadata instead of "user" section
|
|
396
|
+
0.0.5
|
|
397
|
+
- enh: allow to set image_cache_size in HDF5Data
|
|
398
|
+
- enh: allow to easily register new custom segmenters
|
|
399
|
+
- ref: CPUSegmenter has its own submodule now
|
|
400
|
+
0.0.4
|
|
401
|
+
- feat: introduce HDF5 virtual dataset path concatenator
|
|
402
|
+
- enh: allow to pass h5py.File object to HDF5Data
|
|
403
|
+
- fix: typo in logging statement for sparse median bg computation
|
|
404
|
+
0.0.3
|
|
405
|
+
- feat: introduce median background computation
|
|
406
|
+
- feat: introduce data reader
|
|
407
|
+
- feat: introduce thresholding segmenter
|
|
408
|
+
- feat: introduce brightness, haralick texture, and moments-based features
|
|
409
|
+
0.0.2
|
|
410
|
+
- first automated release
|
|
411
|
+
0.0.1
|
|
412
|
+
- stub release
|
dcnum-0.27.3/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023 Paul Müller
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|