dclab 0.62.12__tar.gz → 0.62.14__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.
Potentially problematic release.
This version of dclab might be problematic. Click here for more details.
- {dclab-0.62.12 → dclab-0.62.14}/CHANGELOG +5 -0
- {dclab-0.62.12 → dclab-0.62.14}/PKG-INFO +1 -1
- {dclab-0.62.12 → dclab-0.62.14}/dclab/_version.py +2 -2
- dclab-0.62.14/dclab/rtdc_dataset/fmt_dcor/tables.py +66 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_hdf5/tables.py +31 -1
- dclab-0.62.14/dclab/rtdc_dataset/meta_table.py +25 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/writer.py +7 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab.egg-info/PKG-INFO +1 -1
- {dclab-0.62.12 → dclab-0.62.14}/dclab.egg-info/SOURCES.txt +1 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_export_hdf5.py +66 -2
- dclab-0.62.12/dclab/rtdc_dataset/fmt_dcor/tables.py +0 -42
- {dclab-0.62.12 → dclab-0.62.14}/.gitignore +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/.readthedocs.yml +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/LICENSE +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/MANIFEST.in +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/README.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/cached.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/cli/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/cli/common.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/cli/task_compress.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/cli/task_condense.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/cli/task_join.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/cli/task_repack.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/cli/task_split.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/cli/task_tdms2rtdc.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/cli/task_verify_dataset.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/definitions/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/definitions/feat_const.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/definitions/feat_logic.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/definitions/meta_const.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/definitions/meta_logic.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/definitions/meta_parse.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/downsampling.pyx +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/packaging/LICENSE +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/packaging/LICENSE.APACHE +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/packaging/LICENSE.BSD +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/packaging/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/packaging/_structures.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/packaging/version.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/skimage/LICENSE +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/skimage/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/skimage/_find_contours.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/skimage/_find_contours_cy.pyx +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/skimage/_pnpoly.pyx +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/skimage/_shared/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/skimage/_shared/geometry.pxd +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/skimage/_shared/geometry.pyx +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/skimage/measure.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/skimage/pnpoly.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/statsmodels/LICENSE +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/statsmodels/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/statsmodels/nonparametric/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/statsmodels/nonparametric/_kernel_base.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/statsmodels/nonparametric/kernel_density.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/external/statsmodels/nonparametric/kernels.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/features/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/features/bright.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/features/bright_bc.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/features/bright_perc.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/features/contour.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/features/emodulus/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/features/emodulus/load.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/features/emodulus/lut_HE-2D-FEM-22.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/features/emodulus/lut_HE-3D-FEM-22.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/features/emodulus/lut_LE-2D-FEM-19.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/features/emodulus/pxcorr.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/features/emodulus/scale_linear.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/features/emodulus/viscosity.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/features/fl_crosstalk.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/features/inert_ratio.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/features/volume.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/http_utils.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/isoelastics/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/isoelastics/iso_HE-2D-FEM-22-area_um-deform.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/isoelastics/iso_HE-2D-FEM-22-volume-deform.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/isoelastics/iso_HE-3D-FEM-22-area_um-deform.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/isoelastics/iso_HE-3D-FEM-22-volume-deform.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/isoelastics/iso_LE-2D-FEM-19-area_um-deform.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/isoelastics/iso_LE-2D-FEM-19-volume-deform.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/isoelastics/iso_LE-2D-ana-18-area_um-deform.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/kde_contours.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/kde_methods.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/lme4/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/lme4/lme4_template.R +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/lme4/rsetup.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/lme4/wrapr.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/polygon_filter.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/check.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/config.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/copier.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/core.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/export.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/feat_anc_core/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/feat_anc_core/af_basic.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/feat_anc_core/af_emodulus.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/feat_anc_core/af_fl_max_ctc.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/feat_anc_core/af_image_contour.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/feat_anc_core/af_ml_class.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/feat_anc_core/ancillary_feature.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/feat_anc_ml/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/feat_anc_plugin/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/feat_anc_plugin/plugin_feature.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/feat_basin.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/feat_temp.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/filter.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_dcor/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_dcor/access_token.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_dcor/api.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_dcor/base.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_dcor/basin.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_dcor/logs.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_dict.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_hdf5/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_hdf5/base.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_hdf5/basin.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_hdf5/events.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_hdf5/feat_defect.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_hdf5/logs.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_hierarchy/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_hierarchy/base.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_hierarchy/events.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_hierarchy/hfilter.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_hierarchy/mapper.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_http.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_s3.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_tdms/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_tdms/event_contour.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_tdms/event_image.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_tdms/event_mask.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_tdms/event_trace.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_tdms/exc.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/fmt_tdms/naming.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/rtdc_dataset/load.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/statistics.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/util.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab/warn.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab.egg-info/dependency_links.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab.egg-info/entry_points.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab.egg-info/requires.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/dclab.egg-info/top_level.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/.gitignore +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/README.md +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/conf.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/data/example.poly +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/data/example.rtdc +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/data/example_plugin.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/data/example_plugin_metadata.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/data/example_traces.rtdc +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/data/example_video.rtdc +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/dclab.bib +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/extensions/dclab_defs.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/extensions/fancy_include.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/extensions/github_changelog.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/extensions/simple_argparse.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/figures/DCOR_API_Token_website.png +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/index.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/logo/dc_logo.png +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/logo/dc_logo.svg +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/logo/dclab.png +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/logo/dclab.svg +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/logo/dclab_large_white.png +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/logo/dclab_large_white.svg +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/logo/favicon.ico +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/logo/favicon.svg +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/requirements.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_advanced_usage.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_basins/index.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_dc_io.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_dc_usage.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_dcor.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_emodulus/figures_emodulus/.gitignore +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_emodulus/figures_emodulus/emodulus_20um_HE-2D-FEM-22.png +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_emodulus/figures_emodulus/emodulus_20um_HE-3D-FEM-22.png +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_emodulus/figures_emodulus/emodulus_20um_LE-2D-FEM-19.png +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_emodulus/figures_emodulus/plot_emodulus_lut.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_emodulus/figures_emodulus/requirements.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_emodulus/figures_viscosity/LICENSE +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_emodulus/figures_viscosity/buyukurganci_22_fig3a.jpg +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_emodulus/figures_viscosity/buyukurganci_22_fig3a.pdf +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_emodulus/index.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_feat_plugin.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_feat_temp.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_fluorescence.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_lme4.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_notation.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_s3.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_av_scatter.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_changelog.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_cli.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_code_reference.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_examples.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_getting_started.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/docs/sec_z_bib.rst +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/examples/emodulus_dcor.jpg +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/examples/emodulus_dcor.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/examples/generate_example_images.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/examples/isoelastics.jpg +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/examples/isoelastics.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/examples/isoelastics_custom.jpg +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/examples/isoelastics_custom.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/examples/lme4_glmer_diff.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/examples/lme4_lmer.jpg +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/examples/lme4_lmer.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/examples/overview_plot.jpg +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/examples/overview_plot.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/examples/plugin_example.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/examples/plugin_usage.jpg +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/examples/plugin_usage.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/examples/viscosity_models.jpg +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/examples/viscosity_models.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/pyproject.toml +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/.gitignore +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/README.md +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/fem2iso_volume.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/fem2lutiso_std.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/fem2rtdc.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/lut_recipes/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/lut_recipes/hooks/LUT_analytical_linear-elastic_2Daxis.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/lut_recipes/hooks/README.md +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/lut_recipes/hooks/__init__.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/lut_recipes/hooks/common.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/lut_recipes/hooks/he_2d_fem_22.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/lut_recipes/hooks/he_3d_fem_22.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/lut_recipes/hooks/le_2d_fem_19.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/lut_recipes/lut_processor.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/pixelation_correction.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/pixelation_correction_2020.png +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/pixelation_correction_2022.png +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/scripts/requirements.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/setup.cfg +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/setup.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/README.md +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/conftest.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/README.md +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/example_access_token.dcor-access +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/example_isoelastics.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/feat_anc_plugin_creative.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-hdf5_fl-no-contour_2019.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-hdf5_fl_2017.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-hdf5_fl_2018.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-hdf5_fl_wide-channel_2023.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-hdf5_image-bg_2020.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-hdf5_image-mask-blood_2021.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-hdf5_mask-contour_2018.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-hdf5_polygon_gate_2021.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-hdf5_raw-cytoshot-exported.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-hdf5_segfault-compound_2023.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-hdf5_wide-channel_2023.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-tdms_2fl-no-image_2017.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-tdms_fl-image-bright_2017.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-tdms_fl-image-large-fov_2017.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-tdms_fl-image_2016.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-tdms_fl_2015.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-tdms_minimal_2016.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/data/fmt-tdms_shapein-2.0.1-no-image_2017.zip +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/helper_methods.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/requirements.txt +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_cache.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_cli.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_cli_argparse.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_cli_compress.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_cli_condense.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_cli_join.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_cli_repack.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_cli_split.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_config_value_mapping.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_dfn.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_downsampling.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_feat_bright.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_feat_bright_bc.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_feat_bright_perc.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_feat_contour.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_feat_emodulus.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_feat_emodulus_viscosity.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_feat_fl_crosstalk.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_feat_inert_ratio.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_feat_volume.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_http_utils.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_isoelastics.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_kde_contours.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_kde_methods.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_lme4.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_lut_he_2d_fem_22.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_lut_he_3d_fem_22.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_polygon_contains.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_polygon_filter.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_check_dataset.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_config.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_copier.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_core_feat.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_downsampling.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_export.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_export_avi.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_export_fcs.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_export_tsv.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_feat_anc_core.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_feat_anc_ml.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_feat_anc_plugin.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_feat_basin.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_feat_basin_mapped.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_feat_temp.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_filter.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_fmt_dcor.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_fmt_dcor_access_token.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_fmt_dcor_basin.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_fmt_dict.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_fmt_hdf5.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_fmt_hdf5_basins.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_fmt_hdf5_basins_internal.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_fmt_hierarchy.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_fmt_http.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_fmt_http_basin.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_fmt_s3.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_fmt_s3_basin.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_fmt_tdms.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_hash.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_kde.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_limit_events.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_rtdc_writer.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_statistics.py +0 -0
- {dclab-0.62.12 → dclab-0.62.14}/tests/test_util.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: dclab
|
|
3
|
-
Version: 0.62.
|
|
3
|
+
Version: 0.62.14
|
|
4
4
|
Summary: Library for real-time deformability cytometry (RT-DC)
|
|
5
5
|
Author: Benedikt Hartmann, Eoghan O'Connell, Maik Herbig, Maximilian Schlögel, Nadia Sbaa, Paul Müller, Philipp Rosendahl, Raghava Alajangi
|
|
6
6
|
Maintainer-email: Paul Müller <dev@craban.de>
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import numpy as np
|
|
2
|
+
|
|
3
|
+
from ..meta_table import MetaTable
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class DCORTables:
|
|
7
|
+
def __init__(self, api):
|
|
8
|
+
self.api = api
|
|
9
|
+
self._tables_cache = None
|
|
10
|
+
|
|
11
|
+
def __contains__(self, key):
|
|
12
|
+
return key in self.keys()
|
|
13
|
+
|
|
14
|
+
def __getitem__(self, key):
|
|
15
|
+
return self._tables[key]
|
|
16
|
+
|
|
17
|
+
def __iter__(self):
|
|
18
|
+
for key in self.keys():
|
|
19
|
+
yield key
|
|
20
|
+
|
|
21
|
+
def __len__(self):
|
|
22
|
+
return len(self._tables)
|
|
23
|
+
|
|
24
|
+
def keys(self):
|
|
25
|
+
return self._tables.keys()
|
|
26
|
+
|
|
27
|
+
@property
|
|
28
|
+
def _tables(self):
|
|
29
|
+
if self._tables_cache is None:
|
|
30
|
+
table_data = self.api.get(query="tables")
|
|
31
|
+
# assemble the tables
|
|
32
|
+
tables = {}
|
|
33
|
+
for key in table_data:
|
|
34
|
+
tables[key] = DCORTable(table_data[key])
|
|
35
|
+
|
|
36
|
+
self._tables_cache = tables
|
|
37
|
+
return self._tables_cache
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class DCORTable(MetaTable):
|
|
41
|
+
def __init__(self, table_content):
|
|
42
|
+
self._columns, data = table_content
|
|
43
|
+
self._tab_data = np.asarray(data)
|
|
44
|
+
if self._columns is not None:
|
|
45
|
+
# We have a rec-array (named columns)
|
|
46
|
+
|
|
47
|
+
ds_dt = np.dtype({'names': self._columns,
|
|
48
|
+
'formats': [np.float64] * len(self._columns)})
|
|
49
|
+
self._tab_data = np.rec.array(self._tab_data, dtype=ds_dt)
|
|
50
|
+
|
|
51
|
+
def __array__(self, *args, **kwargs):
|
|
52
|
+
return self._tab_data.__array__(*args, **kwargs)
|
|
53
|
+
|
|
54
|
+
@property
|
|
55
|
+
def meta(self):
|
|
56
|
+
# TODO: Implement metadata sending from DCOR.
|
|
57
|
+
return {}
|
|
58
|
+
|
|
59
|
+
def has_graphs(self):
|
|
60
|
+
return self._columns is not None
|
|
61
|
+
|
|
62
|
+
def keys(self):
|
|
63
|
+
return self._columns
|
|
64
|
+
|
|
65
|
+
def __getitem__(self, key):
|
|
66
|
+
return self._tab_data[key]
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
from ..meta_table import MetaTable
|
|
2
|
+
|
|
3
|
+
|
|
1
4
|
class H5Tables:
|
|
2
5
|
def __init__(self, h5):
|
|
3
6
|
self.h5file = h5
|
|
@@ -5,7 +8,7 @@ class H5Tables:
|
|
|
5
8
|
|
|
6
9
|
def __getitem__(self, key):
|
|
7
10
|
if key in self.keys():
|
|
8
|
-
tab = self.h5file["tables"][key]
|
|
11
|
+
tab = H5Table(self.h5file["tables"][key])
|
|
9
12
|
else:
|
|
10
13
|
raise KeyError(f"Table '{key}' not found or empty "
|
|
11
14
|
f"in {self.h5file.file.filename}!")
|
|
@@ -28,3 +31,30 @@ class H5Tables:
|
|
|
28
31
|
names.append(key)
|
|
29
32
|
self._cache_keys = names
|
|
30
33
|
return self._cache_keys
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class H5Table(MetaTable):
|
|
37
|
+
def __init__(self, h5_ds):
|
|
38
|
+
self._h5_ds = h5_ds
|
|
39
|
+
self._keys = None
|
|
40
|
+
self._meta = None
|
|
41
|
+
|
|
42
|
+
def __array__(self, *args, **kwargs):
|
|
43
|
+
return self._h5_ds.__array__(*args, **kwargs)
|
|
44
|
+
|
|
45
|
+
@property
|
|
46
|
+
def meta(self):
|
|
47
|
+
if self._meta is None:
|
|
48
|
+
self._meta = dict(self._h5_ds.attrs)
|
|
49
|
+
return self._meta
|
|
50
|
+
|
|
51
|
+
def has_graphs(self):
|
|
52
|
+
return self.keys() is not None
|
|
53
|
+
|
|
54
|
+
def keys(self):
|
|
55
|
+
if self._keys is None:
|
|
56
|
+
self._keys = self._h5_ds.dtype.names
|
|
57
|
+
return self._keys
|
|
58
|
+
|
|
59
|
+
def __getitem__(self, key):
|
|
60
|
+
return self._h5_ds[key]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import abc
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class MetaTable(abc.ABC):
|
|
5
|
+
@abc.abstractmethod
|
|
6
|
+
def __array__(self, *args, **kwargs):
|
|
7
|
+
"""Return array representation of the table"""
|
|
8
|
+
|
|
9
|
+
@property
|
|
10
|
+
@abc.abstractmethod
|
|
11
|
+
def meta(self):
|
|
12
|
+
"""Return metadata of the table (e.g. graph colors)"""
|
|
13
|
+
|
|
14
|
+
@abc.abstractmethod
|
|
15
|
+
def has_graphs(self):
|
|
16
|
+
"""Return True when the table has key-based graphs"""
|
|
17
|
+
|
|
18
|
+
@abc.abstractmethod
|
|
19
|
+
def keys(self):
|
|
20
|
+
"""Return keys of the graphs, None if `not self.has_graphs()`"""
|
|
21
|
+
|
|
22
|
+
@abc.abstractmethod
|
|
23
|
+
def __getitem__(self, key):
|
|
24
|
+
"""Return a graph or otherwise part of the data array"""
|
|
25
|
+
pass
|
|
@@ -17,6 +17,7 @@ from ..util import hashobj
|
|
|
17
17
|
from .._version import version
|
|
18
18
|
|
|
19
19
|
from .feat_anc_plugin import PlugInFeature
|
|
20
|
+
from .meta_table import MetaTable
|
|
20
21
|
|
|
21
22
|
#: DEPRECATED (use `CHUNK_SIZE_BYTES` instead)
|
|
22
23
|
CHUNK_SIZE = 100
|
|
@@ -641,6 +642,12 @@ class RTDCWriter:
|
|
|
641
642
|
if h5_attrs is None:
|
|
642
643
|
h5_attrs = {}
|
|
643
644
|
|
|
645
|
+
# Convert MetaTable to numpy data
|
|
646
|
+
if isinstance(cmp_array, MetaTable):
|
|
647
|
+
h5_attrs.update(cmp_array.meta)
|
|
648
|
+
cmp_array = cmp_array.__array__()
|
|
649
|
+
|
|
650
|
+
# Handle individual cases
|
|
644
651
|
if isinstance(cmp_array, np.recarray):
|
|
645
652
|
# A table is a compound array (np.recarray). If we are here,
|
|
646
653
|
# this means that the user passed an instance of np.recarray.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: dclab
|
|
3
|
-
Version: 0.62.
|
|
3
|
+
Version: 0.62.14
|
|
4
4
|
Summary: Library for real-time deformability cytometry (RT-DC)
|
|
5
5
|
Author: Benedikt Hartmann, Eoghan O'Connell, Maik Herbig, Maximilian Schlögel, Nadia Sbaa, Paul Müller, Philipp Rosendahl, Raghava Alajangi
|
|
6
6
|
Maintainer-email: Paul Müller <dev@craban.de>
|
|
@@ -102,6 +102,7 @@ dclab/rtdc_dataset/fmt_dict.py
|
|
|
102
102
|
dclab/rtdc_dataset/fmt_http.py
|
|
103
103
|
dclab/rtdc_dataset/fmt_s3.py
|
|
104
104
|
dclab/rtdc_dataset/load.py
|
|
105
|
+
dclab/rtdc_dataset/meta_table.py
|
|
105
106
|
dclab/rtdc_dataset/writer.py
|
|
106
107
|
dclab/rtdc_dataset/feat_anc_core/__init__.py
|
|
107
108
|
dclab/rtdc_dataset/feat_anc_core/af_basic.py
|
|
@@ -582,7 +582,7 @@ def test_hdf5_override():
|
|
|
582
582
|
def test_hdf5_tables(tables):
|
|
583
583
|
keys = ["area_um", "deform", "time", "frame", "index_online"]
|
|
584
584
|
ddict = example_data_dict(size=10, keys=keys)
|
|
585
|
-
ds1 =
|
|
585
|
+
ds1 = new_dataset(ddict)
|
|
586
586
|
ds1.config["experiment"]["sample"] = "test"
|
|
587
587
|
ds1.config["experiment"]["run index"] = 1
|
|
588
588
|
ds1.config["imaging"]["frame rate"] = 2000
|
|
@@ -608,11 +608,18 @@ def test_hdf5_tables(tables):
|
|
|
608
608
|
else:
|
|
609
609
|
assert "src_iratrax" not in h5.get("tables", {})
|
|
610
610
|
|
|
611
|
+
if tables:
|
|
612
|
+
# reading the file with dclab
|
|
613
|
+
with new_dataset(f1) as ds:
|
|
614
|
+
assert "src_iratrax" in ds.tables
|
|
615
|
+
assert ds.tables["src_iratrax"].has_graphs()
|
|
616
|
+
assert np.all(ds.tables["src_iratrax"] == rec_arr)
|
|
617
|
+
|
|
611
618
|
|
|
612
619
|
def test_hdf5_tables_array_only():
|
|
613
620
|
keys = ["area_um", "deform", "time", "frame", "index_online"]
|
|
614
621
|
ddict = example_data_dict(size=10, keys=keys)
|
|
615
|
-
ds1 =
|
|
622
|
+
ds1 = new_dataset(ddict)
|
|
616
623
|
ds1.config["experiment"]["sample"] = "test"
|
|
617
624
|
ds1.config["experiment"]["run index"] = 1
|
|
618
625
|
ds1.config["imaging"]["frame rate"] = 2000
|
|
@@ -629,6 +636,63 @@ def test_hdf5_tables_array_only():
|
|
|
629
636
|
assert np.all(h5["tables"]["src_iratrax"] == tab_data)
|
|
630
637
|
assert h5["tables"]["src_iratrax"].attrs["CLASS"] == np.bytes_("IMAGE")
|
|
631
638
|
|
|
639
|
+
# reading the file with dclab
|
|
640
|
+
with new_dataset(f1) as ds:
|
|
641
|
+
assert "src_iratrax" in ds.tables
|
|
642
|
+
assert not ds.tables["src_iratrax"].has_graphs()
|
|
643
|
+
assert np.all(ds.tables["src_iratrax"] == tab_data)
|
|
644
|
+
assert ds.tables["src_iratrax"].meta["CLASS"] == np.bytes_("IMAGE")
|
|
645
|
+
|
|
646
|
+
|
|
647
|
+
def test_hdf5_table_from_file(tmp_path):
|
|
648
|
+
ds = new_dataset(retrieve_data("fmt-hdf5_raw-cytoshot-exported.zip"))
|
|
649
|
+
|
|
650
|
+
f1 = join(tmp_path, "test.rtdc")
|
|
651
|
+
ds.export.hdf5(f1, ["temp"], tables=True)
|
|
652
|
+
|
|
653
|
+
ds2 = new_dataset(f1)
|
|
654
|
+
tab = ds2.tables["src_so2exp_cytoshot_monitor"]
|
|
655
|
+
|
|
656
|
+
assert np.allclose(
|
|
657
|
+
tab["focus"][0],
|
|
658
|
+
6.241900073522602,
|
|
659
|
+
atol=1e-7, rtol=0)
|
|
660
|
+
|
|
661
|
+
assert tab.meta["COLOR_focus"] == "#a03000"
|
|
662
|
+
|
|
663
|
+
|
|
664
|
+
def test_hdf5_table_from_file_with_unnamed_table(tmp_path):
|
|
665
|
+
path = retrieve_data("fmt-hdf5_raw-cytoshot-exported.zip")
|
|
666
|
+
with RTDCWriter(path) as hw:
|
|
667
|
+
hw.store_table("just_an_array", np.ones((30, 50)),
|
|
668
|
+
h5_attrs={"heinz": "kunz"})
|
|
669
|
+
|
|
670
|
+
# Make sure that worked with tables
|
|
671
|
+
with new_dataset(path) as ds:
|
|
672
|
+
tab = ds.tables["just_an_array"]
|
|
673
|
+
assert not tab.has_graphs()
|
|
674
|
+
assert np.array(tab).shape == (30, 50)
|
|
675
|
+
assert tab.meta["heinz"] == "kunz"
|
|
676
|
+
|
|
677
|
+
with new_dataset(path) as ds:
|
|
678
|
+
f1 = join(tmp_path, "test.rtdc")
|
|
679
|
+
ds.export.hdf5(f1, ["temp"], tables=True)
|
|
680
|
+
|
|
681
|
+
with new_dataset(f1) as ds2:
|
|
682
|
+
tab = ds2.tables["src_so2exp_cytoshot_monitor"]
|
|
683
|
+
assert tab.has_graphs()
|
|
684
|
+
assert np.allclose(
|
|
685
|
+
tab["focus"][0],
|
|
686
|
+
6.241900073522602,
|
|
687
|
+
atol=1e-7, rtol=0)
|
|
688
|
+
|
|
689
|
+
assert tab.meta["COLOR_focus"] == "#a03000"
|
|
690
|
+
|
|
691
|
+
tab2 = ds2.tables["src_just_an_array"]
|
|
692
|
+
assert not tab2.has_graphs()
|
|
693
|
+
assert np.array(tab2).shape == (30, 50)
|
|
694
|
+
assert tab2.meta["heinz"] == "kunz"
|
|
695
|
+
|
|
632
696
|
|
|
633
697
|
def test_hdf5_trace_from_tdms():
|
|
634
698
|
pytest.importorskip("nptdms")
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import numpy as np
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class DCORTables:
|
|
5
|
-
def __init__(self, api):
|
|
6
|
-
self.api = api
|
|
7
|
-
self._tables_cache = None
|
|
8
|
-
|
|
9
|
-
def __contains__(self, key):
|
|
10
|
-
return key in self.keys()
|
|
11
|
-
|
|
12
|
-
def __getitem__(self, key):
|
|
13
|
-
return self._tables[key]
|
|
14
|
-
|
|
15
|
-
def __iter__(self):
|
|
16
|
-
for key in self.keys():
|
|
17
|
-
yield key
|
|
18
|
-
|
|
19
|
-
def __len__(self):
|
|
20
|
-
return len(self._tables)
|
|
21
|
-
|
|
22
|
-
def keys(self):
|
|
23
|
-
return self._tables.keys()
|
|
24
|
-
|
|
25
|
-
@property
|
|
26
|
-
def _tables(self):
|
|
27
|
-
if self._tables_cache is None:
|
|
28
|
-
table_data = self.api.get(query="tables")
|
|
29
|
-
# assemble the tables
|
|
30
|
-
tables = {}
|
|
31
|
-
for key in table_data:
|
|
32
|
-
columns, data = table_data[key]
|
|
33
|
-
tab_data = np.asarray(data)
|
|
34
|
-
if columns is not None:
|
|
35
|
-
# We have a rec-array (named columns)
|
|
36
|
-
ds_dt = np.dtype({'names': columns,
|
|
37
|
-
'formats': [np.float64] * len(columns)})
|
|
38
|
-
tab_data = np.rec.array(tab_data, dtype=ds_dt)
|
|
39
|
-
tables[key] = tab_data
|
|
40
|
-
|
|
41
|
-
self._tables_cache = tables
|
|
42
|
-
return self._tables_cache
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|