CellProfiler-nightly 5.0.0.dev707__tar.gz → 5.0.0.dev718__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.
Files changed (392) hide show
  1. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/CellProfiler_nightly.egg-info/PKG-INFO +1 -1
  2. cellprofiler_nightly-5.0.0.dev718/CellProfiler_nightly.egg-info/scm_version.json +8 -0
  3. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/PKG-INFO +1 -1
  4. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/_version.py +3 -3
  5. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/module_view/_module_view.py +4 -0
  6. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/identifytertiaryobjects.py +1 -0
  7. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/relateobjects.py +91 -361
  8. cellprofiler_nightly-5.0.0.dev707/CellProfiler_nightly.egg-info/scm_version.json +0 -8
  9. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/CellProfiler_nightly.egg-info/SOURCES.txt +0 -0
  10. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/CellProfiler_nightly.egg-info/dependency_links.txt +0 -0
  11. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/CellProfiler_nightly.egg-info/entry_points.txt +0 -0
  12. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/CellProfiler_nightly.egg-info/requires.txt +0 -0
  13. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/CellProfiler_nightly.egg-info/scm_file_list.json +0 -0
  14. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/CellProfiler_nightly.egg-info/top_level.txt +0 -0
  15. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/LICENSE +0 -0
  16. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/README.md +0 -0
  17. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/__init__.py +0 -0
  18. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/__main__.py +0 -0
  19. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/examples/ExampleFly/ExampleFly.cppipe +0 -0
  20. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/examples/ExampleFly/images/01_POS002_D.TIF +0 -0
  21. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/examples/ExampleFly/images/01_POS002_F.TIF +0 -0
  22. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/examples/ExampleFly/images/01_POS002_R.TIF +0 -0
  23. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/examples/ExampleFly/images/01_POS076_D.TIF +0 -0
  24. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/examples/ExampleFly/images/01_POS076_F.TIF +0 -0
  25. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/examples/ExampleFly/images/01_POS076_R.TIF +0 -0
  26. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/examples/ExampleFly/images/01_POS218_D.TIF +0 -0
  27. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/examples/ExampleFly/images/01_POS218_F.TIF +0 -0
  28. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/examples/ExampleFly/images/01_POS218_R.TIF +0 -0
  29. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/display_image_tools.rst +0 -0
  30. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/display_interactive_navigation.rst +0 -0
  31. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/display_menu_bar.rst +0 -0
  32. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/legacy_matlab_image.rst +0 -0
  33. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/navigation_edit_menu.rst +0 -0
  34. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/navigation_file_menu.rst +0 -0
  35. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/navigation_test_menu.rst +0 -0
  36. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/navigation_window_menu.rst +0 -0
  37. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/other_3d_identify.rst +0 -0
  38. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/other_batch.rst +0 -0
  39. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/other_logging.rst +0 -0
  40. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/other_omero.rst +0 -0
  41. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/other_plugins.rst +0 -0
  42. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/other_shell.rst +0 -0
  43. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/other_troubleshooting.rst +0 -0
  44. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/other_widget_inspector.rst +0 -0
  45. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/output_measurements.rst +0 -0
  46. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/output_plateviewer.rst +0 -0
  47. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/output_spreadsheets.rst +0 -0
  48. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/pipelines_building.rst +0 -0
  49. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/pipelines_running.rst +0 -0
  50. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/projects_configure_images.rst +0 -0
  51. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/projects_image_ordering.rst +0 -0
  52. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/projects_image_sequences.rst +0 -0
  53. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/projects_introduction.rst +0 -0
  54. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/projects_selecting_images.rst +0 -0
  55. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/help/why_use_cellprofiler.rst +0 -0
  56. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/icons/CellProfiler-favicon-120.png +0 -0
  57. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/icons/CellProfiler-favicon-128.png +0 -0
  58. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/icons/CellProfiler-favicon-144.png +0 -0
  59. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/icons/CellProfiler-favicon-152.png +0 -0
  60. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/icons/CellProfiler-favicon-195.png +0 -0
  61. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/icons/CellProfiler-favicon-228.png +0 -0
  62. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/icons/CellProfiler-favicon-32.png +0 -0
  63. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/icons/CellProfiler-favicon-57.png +0 -0
  64. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/icons/CellProfiler-favicon-72.png +0 -0
  65. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/icons/CellProfiler-favicon-96.png +0 -0
  66. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/icons/CellProfiler-favicon.ico +0 -0
  67. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/icons/CellProfiler.ai +0 -0
  68. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/icons/CellProfiler.icns +0 -0
  69. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/icons/CellProfiler.ico +0 -0
  70. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/icons/CellProfiler.png +0 -0
  71. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/icons/CellProfiler.svg +0 -0
  72. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/icons/CellProfiler_square.svg +0 -0
  73. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/Align.png +0 -0
  74. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/ApplyThreshold.png +0 -0
  75. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/CollapseTree.png +0 -0
  76. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/ColorToGray.png +0 -0
  77. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/CorrectIlluminationApply.png +0 -0
  78. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/CorrectIlluminationCalculate.png +0 -0
  79. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/Crop.png +0 -0
  80. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/ExpandOrShrinkObjects.png +0 -0
  81. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/ExpandTree.png +0 -0
  82. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/GrayToColor.png +0 -0
  83. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/Groups_ExampleDisplayTable.png +0 -0
  84. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_ANALYZED.png +0 -0
  85. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_ANALYZE_16.png +0 -0
  86. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_ANALYZE_24.png +0 -0
  87. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_CLOSED_EYE.png +0 -0
  88. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_DISABLED.png +0 -0
  89. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_ERROR.png +0 -0
  90. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_EYE.png +0 -0
  91. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_GO.png +0 -0
  92. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_GO_DIM.png +0 -0
  93. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_IMAGE.png +0 -0
  94. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_MEASURE.png +0 -0
  95. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_OK.png +0 -0
  96. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_PAUSE.png +0 -0
  97. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_RUN.png +0 -0
  98. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_SLIDER.png +0 -0
  99. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_SLIDER_ACTIVE.png +0 -0
  100. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_STOP.png +0 -0
  101. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_TEST.png +0 -0
  102. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_UNAVAILABLE.png +0 -0
  103. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_UPDATE.png +0 -0
  104. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_USE_INPUT.png +0 -0
  105. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_USE_OUTPUT.png +0 -0
  106. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_USE_SOURCE.png +0 -0
  107. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IMG_WARN.png +0 -0
  108. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IdentifyPrimaryObjects_IntensityDeclumping.png +0 -0
  109. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IdentifyPrimaryObjects_ShapeDeclumping.png +0 -0
  110. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IdentifySecondaryObjects.png +0 -0
  111. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/IdentifyTertiaryObjects.png +0 -0
  112. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/Images_FilelistPanel.png +0 -0
  113. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/Images_FilelistPanel_Blank.png +0 -0
  114. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/Images_FilelistPanel_Filled.png +0 -0
  115. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/Images_UsingRules.png +0 -0
  116. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/MeasureGranularity_example.png +0 -0
  117. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/MeasureImageAreaOccupied.png +0 -0
  118. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Edges_Centers.png +0 -0
  119. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/MeasureObjectIntensityDistribution_Magnitude_Phase.png +0 -0
  120. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/MeasureObjectSizeShape_Eccentricity.png +0 -0
  121. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/MeasureTexture.png +0 -0
  122. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/Measure_texture_3D_correspondences_1.png +0 -0
  123. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/Measure_texture_3D_correspondences_1_highres.png +0 -0
  124. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/Measure_texture_3D_correspondences_2.png +0 -0
  125. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/Measure_texture_3D_correspondences_2_highres.png +0 -0
  126. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/Metadata_ExampleDisplayTable.png +0 -0
  127. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/NamesAndTypes_ExampleDisplayTable.png +0 -0
  128. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/Tile.png +0 -0
  129. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/UnmixColors.png +0 -0
  130. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/check.png +0 -0
  131. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/color.png +0 -0
  132. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/cp_panel_schematic.png +0 -0
  133. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/dapi.png +0 -0
  134. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/delete.png +0 -0
  135. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/downarrow.png +0 -0
  136. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/eye-close.png +0 -0
  137. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/eye-open.png +0 -0
  138. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/ffwd.png +0 -0
  139. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/ffwddisabled.png +0 -0
  140. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/filter.png +0 -0
  141. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/folder_browse.png +0 -0
  142. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/folder_create.png +0 -0
  143. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/gear.png +0 -0
  144. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/gfp.png +0 -0
  145. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/icon_copyrights.txt +0 -0
  146. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/illumination_function.png +0 -0
  147. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/image_to_object_dataflow.png +0 -0
  148. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/image_to_object_dataflow.psd +0 -0
  149. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/mask.png +0 -0
  150. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/microscope-color_16.png +0 -0
  151. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/microscope-icon_16.png +0 -0
  152. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/microscope-icon_32.png +0 -0
  153. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/microscopes_16.png +0 -0
  154. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/module_add.png +0 -0
  155. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/module_help.png +0 -0
  156. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/module_movedown.png +0 -0
  157. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/module_moveup.png +0 -0
  158. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/module_remove.png +0 -0
  159. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/monochrome.png +0 -0
  160. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/movie_16.png +0 -0
  161. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/next.png +0 -0
  162. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/objects.png +0 -0
  163. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/pause.png +0 -0
  164. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/pausedisabled.png +0 -0
  165. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/play.png +0 -0
  166. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/playdisabled.png +0 -0
  167. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/previous.png +0 -0
  168. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/remove-sign.png +0 -0
  169. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/rewind.png +0 -0
  170. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/rewinddisabled.png +0 -0
  171. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/splash-black-text-alpha.png +0 -0
  172. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/splash-white-text-alpha.png +0 -0
  173. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/splash.png +0 -0
  174. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/status_pause.png +0 -0
  175. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/status_save.png +0 -0
  176. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/status_stop.png +0 -0
  177. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/stop.png +0 -0
  178. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/stopdisabled.png +0 -0
  179. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/structuringelement.png +0 -0
  180. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/thumb-down.png +0 -0
  181. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/thumb-up.png +0 -0
  182. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/unchecked.png +0 -0
  183. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/wantpony.wav +0 -0
  184. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/welcome_examples.png +0 -0
  185. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/welcome_forum.png +0 -0
  186. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/welcome_help.png +0 -0
  187. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/welcome_manual.png +0 -0
  188. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/welcome_new.png +0 -0
  189. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/welcome_pipeline.png +0 -0
  190. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/welcome_screen_help.png +0 -0
  191. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/welcome_start.png +0 -0
  192. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/welcome_tutorial.png +0 -0
  193. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/welcomescreen_forum.png +0 -0
  194. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/welcomescreen_manual.png +0 -0
  195. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/welcomescreen_tutorials.png +0 -0
  196. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/window_back.png +0 -0
  197. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/window_filesave.png +0 -0
  198. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/window_forward.png +0 -0
  199. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/window_home.png +0 -0
  200. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/window_pan.png +0 -0
  201. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/data/images/window_zoom_to_rect.png +0 -0
  202. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/__init__.py +0 -0
  203. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/_tree_checkbox_dialog.py +0 -0
  204. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/_welcome_frame.py +0 -0
  205. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/_workspace_model.py +0 -0
  206. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/addmoduleframe.py +0 -0
  207. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/app.py +0 -0
  208. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/artist.py +0 -0
  209. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/checkupdate.py +0 -0
  210. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/constants/__init__.py +0 -0
  211. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/constants/figure.py +0 -0
  212. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/constants/module_view.py +0 -0
  213. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/constants/preferences_dialog.py +0 -0
  214. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/constants/preferences_view.py +0 -0
  215. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/constants/workspace_view.py +0 -0
  216. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/cpframe.py +0 -0
  217. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/dialog.py +0 -0
  218. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/editobjectsdlg.py +0 -0
  219. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/errordialog.py +0 -0
  220. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/figure/__init__.py +0 -0
  221. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/figure/_figure.py +0 -0
  222. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/figure/_navigation_toolbar.py +0 -0
  223. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/figure/_outline_artist.py +0 -0
  224. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/gridrenderers.py +0 -0
  225. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/help/__init__.py +0 -0
  226. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/help/content.py +0 -0
  227. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/help/menu.py +0 -0
  228. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/help/search.py +0 -0
  229. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/html/__init__.py +0 -0
  230. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/html/configure_images_help.html +0 -0
  231. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/html/exporting_results_help.html +0 -0
  232. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/html/getting_started.html +0 -0
  233. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/html/htmlwindow.py +0 -0
  234. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/html/identify_features_help.html +0 -0
  235. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/html/in_app_help.html +0 -0
  236. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/html/making_measurements_help.html +0 -0
  237. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/html/running_pipeline_help.html +0 -0
  238. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/html/selecting_images_help.html +0 -0
  239. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/html/test_mode_help.html +0 -0
  240. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/html/utils.py +0 -0
  241. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/html/welcome.html +0 -0
  242. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/htmldialog.py +0 -0
  243. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/imagesetctrl.py +0 -0
  244. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/menu.py +0 -0
  245. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/metadatactrl.py +0 -0
  246. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/module_view/__init__.py +0 -0
  247. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/module_view/_binary_matrix_controller.py +0 -0
  248. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/module_view/_data_type_controller.py +0 -0
  249. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/module_view/_file_collection_display_controller.py +0 -0
  250. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/module_view/_filter_panel_controller.py +0 -0
  251. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/module_view/_joiner_controller.py +0 -0
  252. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/module_view/_module_sizer.py +0 -0
  253. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/module_view/_setting_edited_event.py +0 -0
  254. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/module_view/_table_controller.py +0 -0
  255. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/module_view/_validation_request_controller.py +0 -0
  256. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/moduleview.py +0 -0
  257. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/namesubscriber.py +0 -0
  258. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/omerologin.py +0 -0
  259. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/parametersampleframe.py +0 -0
  260. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/pathlist.py +0 -0
  261. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/pipeline.py +0 -0
  262. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/pipelinecontroller.py +0 -0
  263. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/pipelinelistview.py +0 -0
  264. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/plateviewer.py +0 -0
  265. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/plugins_menu.py +0 -0
  266. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/preferences_dialog/__init__.py +0 -0
  267. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/preferences_dialog/_integer_preference.py +0 -0
  268. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/preferences_dialog/_preferences_dialog.py +0 -0
  269. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/preferences_view/__init__.py +0 -0
  270. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/preferences_view/_preferences_view.py +0 -0
  271. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/preferences_view/_progress_watcher.py +0 -0
  272. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/readers_dialog/__init__.py +0 -0
  273. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/readers_dialog/_readers_dialog.py +0 -0
  274. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/regexp_editor.py +0 -0
  275. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/tools.py +0 -0
  276. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/utilities/__init__.py +0 -0
  277. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/utilities/figure.py +0 -0
  278. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/utilities/icon.py +0 -0
  279. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/utilities/module_view.py +0 -0
  280. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/utilities/preferences_dialog.py +0 -0
  281. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/utilities/preferences_view.py +0 -0
  282. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/utilities/workspace_view.py +0 -0
  283. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/workspace_view/__init__.py +0 -0
  284. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/workspace_view/_workspace_view.py +0 -0
  285. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/workspace_view/_workspace_view_figure.py +0 -0
  286. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/workspace_view/_workspace_view_image_row.py +0 -0
  287. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/workspace_view/_workspace_view_mask_row.py +0 -0
  288. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/workspace_view/_workspace_view_measurement_row.py +0 -0
  289. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/workspace_view/_workspace_view_objects_row.py +0 -0
  290. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/gui/workspace_view/_workspace_view_row.py +0 -0
  291. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/icons/__init__.py +0 -0
  292. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/knime_bridge.py +0 -0
  293. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/misc.py +0 -0
  294. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/UntangleWorms.xsd +0 -0
  295. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/__init__.py +0 -0
  296. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/_help.py +0 -0
  297. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/calculatemath.py +0 -0
  298. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/calculatestatistics.py +0 -0
  299. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/classifyobjects.py +0 -0
  300. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/closing.py +0 -0
  301. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/colortogray.py +0 -0
  302. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/combineobjects.py +0 -0
  303. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/convertimagetoobjects.py +0 -0
  304. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/convertobjectstoimage.py +0 -0
  305. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/correctilluminationapply.py +0 -0
  306. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/correctilluminationcalculate.py +0 -0
  307. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/createbatchfiles.py +0 -0
  308. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/crop.py +0 -0
  309. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/definegrid.py +0 -0
  310. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/dilateimage.py +0 -0
  311. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/dilateobjects.py +0 -0
  312. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/displaydataonimage.py +0 -0
  313. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/displaydensityplot.py +0 -0
  314. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/displayhistogram.py +0 -0
  315. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/displayplatemap.py +0 -0
  316. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/displayscatterplot.py +0 -0
  317. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/editobjectsmanually.py +0 -0
  318. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/enhanceedges.py +0 -0
  319. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/enhanceorsuppressfeatures.py +0 -0
  320. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/erodeimage.py +0 -0
  321. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/erodeobjects.py +0 -0
  322. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/expandorshrinkobjects.py +0 -0
  323. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/exporttodatabase.py +0 -0
  324. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/exporttospreadsheet.py +0 -0
  325. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/fillobjects.py +0 -0
  326. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/filterobjects.py +0 -0
  327. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/findmaxima.py +0 -0
  328. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/flagimage.py +0 -0
  329. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/flipandrotate.py +0 -0
  330. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/gaussianfilter.py +0 -0
  331. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/graytocolor.py +0 -0
  332. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/identifydeadworms.py +0 -0
  333. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/identifyobjectsingrid.py +0 -0
  334. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/identifyobjectsmanually.py +0 -0
  335. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/identifyprimaryobjects.py +0 -0
  336. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/identifysecondaryobjects.py +0 -0
  337. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/imagemath.py +0 -0
  338. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/invertforprinting.py +0 -0
  339. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/labelimages.py +0 -0
  340. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/makeprojection.py +0 -0
  341. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/maskimage.py +0 -0
  342. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/maskobjects.py +0 -0
  343. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/matchtemplate.py +0 -0
  344. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/measurecolocalization.py +0 -0
  345. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/measuregranularity.py +0 -0
  346. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/measureimageareaoccupied.py +0 -0
  347. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/measureimageintensity.py +0 -0
  348. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/measureimageoverlap.py +0 -0
  349. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/measureimagequality.py +0 -0
  350. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/measureimageskeleton.py +0 -0
  351. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/measureobjectintensity.py +0 -0
  352. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/measureobjectintensitydistribution.py +0 -0
  353. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/measureobjectneighbors.py +0 -0
  354. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/measureobjectoverlap.py +0 -0
  355. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/measureobjectsizeshape.py +0 -0
  356. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/measureobjectskeleton.py +0 -0
  357. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/measuretexture.py +0 -0
  358. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/medialaxis.py +0 -0
  359. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/medianfilter.py +0 -0
  360. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/morph.py +0 -0
  361. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/morphologicalskeleton.py +0 -0
  362. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/opening.py +0 -0
  363. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/overlayobjects.py +0 -0
  364. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/overlayoutlines.py +0 -0
  365. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/plugins/__init__.py +0 -0
  366. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/plugins/imagetemplate.py +0 -0
  367. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/plugins/measurementtemplate.py +0 -0
  368. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/plugins/segmentationtemplatewithdependencies.py +0 -0
  369. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/reducenoise.py +0 -0
  370. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/removeholes.py +0 -0
  371. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/rescaleintensity.py +0 -0
  372. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/resize.py +0 -0
  373. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/resizeobjects.py +0 -0
  374. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/runimagejmacro.py +0 -0
  375. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/savecroppedobjects.py +0 -0
  376. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/saveimages.py +0 -0
  377. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/shrinktoobjectcenters.py +0 -0
  378. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/smooth.py +0 -0
  379. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/splitormergeobjects.py +0 -0
  380. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/straightenworms.py +0 -0
  381. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/threshold.py +0 -0
  382. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/tile.py +0 -0
  383. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/trackobjects.py +0 -0
  384. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/unmixcolors.py +0 -0
  385. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/untangleworms.py +0 -0
  386. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/modules/watershed.py +0 -0
  387. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/utilities/__init__.py +0 -0
  388. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/utilities/morphology.py +0 -0
  389. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/cellprofiler/utilities/rules.py +0 -0
  390. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/environment.yml +0 -0
  391. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/pyproject.toml +0 -0
  392. {cellprofiler_nightly-5.0.0.dev707 → cellprofiler_nightly-5.0.0.dev718}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CellProfiler-nightly
3
- Version: 5.0.0.dev707
3
+ Version: 5.0.0.dev718
4
4
  Summary: CellProfiler is a free open-source software designed to enable biologists without training in computer vision or programming to quantitatively measure phenotypes from thousands of images automatically.
5
5
  Author: Anne Carpenter, Thouis (Ray) Jones, Lee Kamentsky, Vebjorn Ljosa, David Logan, Mark Bray, Madison Swain-Bowden, Allen Goodman, Claire McQuinn, Alice Lucas, Callum Tromans-Coia
6
6
  Author-email: Beth Cimini <bcimini@broadinstitute.org>, David Stirling <dstirling@glencoesoftware.com>, Nodar Gogoberidze <ngogober@broadinstitute.org>
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "5.0.0.dev0",
3
+ "distance": 718,
4
+ "node": "ga1fd59b3abe5ea0547a586827c609d44f8deed76",
5
+ "dirty": true,
6
+ "branch": "main",
7
+ "node_date": "2026-09-25"
8
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: CellProfiler-nightly
3
- Version: 5.0.0.dev707
3
+ Version: 5.0.0.dev718
4
4
  Summary: CellProfiler is a free open-source software designed to enable biologists without training in computer vision or programming to quantitatively measure phenotypes from thousands of images automatically.
5
5
  Author: Anne Carpenter, Thouis (Ray) Jones, Lee Kamentsky, Vebjorn Ljosa, David Logan, Mark Bray, Madison Swain-Bowden, Allen Goodman, Claire McQuinn, Alice Lucas, Callum Tromans-Coia
6
6
  Author-email: Beth Cimini <bcimini@broadinstitute.org>, David Stirling <dstirling@glencoesoftware.com>, Nodar Gogoberidze <ngogober@broadinstitute.org>
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '5.0.0.dev707'
22
- __version_tuple__ = version_tuple = (5, 0, 0, 'dev707')
21
+ __version__ = version = '5.0.0.dev718'
22
+ __version_tuple__ = version_tuple = (5, 0, 0, 'dev718')
23
23
 
24
- __commit_id__ = commit_id = 'g2b3417b86'
24
+ __commit_id__ = commit_id = 'ga1fd59b3a'
@@ -728,6 +728,10 @@ class ModuleView:
728
728
  v.test_valid(self.__pipeline)
729
729
  except:
730
730
  pass
731
+ # test_valid for Choice calls its `self.__choice_fn` which may set `v.choices` to a new value
732
+ # since `self.__choice` is being run for the first time since `Choice` instantiation
733
+ # the reason we take `choices` in as an argument is purely for a consistent function signature with other `make_x` functions
734
+ choices = v.choices
731
735
  if v.value not in choices and style == wx.CB_READONLY:
732
736
  choices = choices + [v.value]
733
737
  if not control:
@@ -478,6 +478,7 @@ but the results will be zero or not-a-number (NaN).
478
478
  if object_name == self.subregion_objects_name:
479
479
  if category == "Location":
480
480
  result += ["Center_X", "Center_Y"]
481
+ # TODO: 5116 - should use some constant, probably C_PARENT, same above and below
481
482
  elif category == "Parent":
482
483
  result += [
483
484
  self.primary_objects_name.value,
@@ -2,15 +2,7 @@
2
2
 
3
3
  import cellprofiler_core.object
4
4
  import numpy
5
- import scipy.ndimage
6
- import skimage.segmentation
7
5
  from cellprofiler_core.constants.measurement import (
8
- C_PARENT,
9
- C_CHILDREN,
10
- FF_PARENT,
11
- FF_CHILDREN_COUNT,
12
- R_PARENT,
13
- R_CHILD,
14
6
  MCA_AVAILABLE_EACH_CYCLE,
15
7
  C_COUNT,
16
8
  C_LOCATION,
@@ -19,7 +11,6 @@ from cellprofiler_core.constants.measurement import (
19
11
  FTR_CENTER_Y,
20
12
  FTR_CENTER_Z,
21
13
  FTR_OBJECT_NUMBER,
22
- M_NUMBER_OBJECT_NUMBER,
23
14
  COLTYPE_FLOAT,
24
15
  )
25
16
  from cellprofiler_core.module.image_segmentation import ObjectProcessing
@@ -31,6 +22,16 @@ from cellprofiler_core.setting.text import LabelName
31
22
 
32
23
  from cellprofiler.modules import _help
33
24
 
25
+ from cellprofiler_library.opts.relateobjects import DistanceMethod, TemplateMeasurementFormat, Relationship, C_PARENT, C_CHILDREN
26
+ from cellprofiler_library.modules._relateobjects import (
27
+ relate_objects,
28
+ should_aggregate_feature as _should_aggregate_feature,
29
+ )
30
+ from cellprofiler_library.measurement_model import (
31
+ R_FIRST_OBJECT_NUMBER,
32
+ R_SECOND_OBJECT_NUMBER,
33
+ )
34
+
34
35
  __doc__ = """\
35
36
  RelateObjects
36
37
  =============
@@ -86,17 +87,6 @@ Measurements made by this module
86
87
  **{"HELP_ON_SAVING_OBJECTS": _help.HELP_ON_SAVING_OBJECTS}
87
88
  )
88
89
 
89
- D_NONE = "None"
90
- D_CENTROID = "Centroid"
91
- D_MINIMUM = "Minimum"
92
- D_BOTH = "Both"
93
-
94
- D_ALL = [D_NONE, D_CENTROID, D_MINIMUM, D_BOTH]
95
-
96
- C_MEAN = "Mean"
97
-
98
- FF_MEAN = "%s_%%s_%%s" % C_MEAN
99
-
100
90
  """Distance category"""
101
91
  C_DISTANCE = "Distance"
102
92
 
@@ -106,12 +96,6 @@ FEAT_CENTROID = "Centroid"
106
96
  """Minimum distance feature"""
107
97
  FEAT_MINIMUM = "Minimum"
108
98
 
109
- """Centroid distance measurement (FF_DISTANCE % parent)"""
110
- FF_CENTROID = "%s_%s_%%s" % (C_DISTANCE, FEAT_CENTROID)
111
-
112
- """Minimum distance measurement (FF_MINIMUM % parent)"""
113
- FF_MINIMUM = "%s_%s_%%s" % (C_DISTANCE, FEAT_MINIMUM)
114
-
115
99
  FIXED_SETTING_COUNT = 7
116
100
  VARIABLE_SETTING_COUNT = 1
117
101
 
@@ -142,7 +126,7 @@ speckles to the nuclei that contains them, the speckles are the children.
142
126
 
143
127
  self.find_parent_child_distances = Choice(
144
128
  "Calculate child-parent distances?",
145
- D_ALL,
129
+ [DistanceMethod.NONE, DistanceMethod.CENTROID, DistanceMethod.MINIMUM, DistanceMethod.BOTH],
146
130
  doc="""\
147
131
  Choose the method to calculate distances of each child to its parent.
148
132
  For example, these measurements can tell you whether nuclear speckles
@@ -157,10 +141,10 @@ periphery.
157
141
  - *{D_BOTH}:* Calculate both the *{D_MINIMUM}* and *{D_CENTROID}*
158
142
  distances.""".format(
159
143
  **{
160
- "D_NONE": D_NONE,
161
- "D_MINIMUM": D_MINIMUM,
162
- "D_CENTROID": D_CENTROID,
163
- "D_BOTH": D_BOTH,
144
+ "D_NONE": DistanceMethod.NONE,
145
+ "D_MINIMUM": DistanceMethod.MINIMUM,
146
+ "D_CENTROID": DistanceMethod.CENTROID,
147
+ "D_BOTH": DistanceMethod.BOTH,
164
148
  }
165
149
  ),
166
150
  )
@@ -176,7 +160,7 @@ other objects. These objects must be either parents or children of your
176
160
  parent object in order for this module to determine the distances. For
177
161
  instance, you might find “Nuclei” using **IdentifyPrimaryObjects**, find
178
162
  “Cells” using **IdentifySecondaryObjects** and find “Cytoplasm” using
179
- **IdentifyTertiaryObjects**. You can use **Relate** to relate speckles
163
+ **IdentifyTertiaryObjects**. You can use **RelateObjects** to relate speckles
180
164
  to cells and then measure distances to nuclei and cytoplasm. You could
181
165
  not use **RelateObjects** to relate speckles to cytoplasm and then
182
166
  measure distances to nuclei, because nuclei are neither a direct parent
@@ -319,7 +303,7 @@ parents or children of the parent object.""",
319
303
  if self.wants_child_objects_saved:
320
304
  visible_settings += [self.output_child_objects_name]
321
305
 
322
- if self.find_parent_child_distances != D_NONE and self.has_step_parents:
306
+ if self.find_parent_child_distances != DistanceMethod.NONE and self.has_step_parents:
323
307
  visible_settings += [self.wants_step_parent_distances]
324
308
 
325
309
  if self.wants_step_parent_distances:
@@ -334,121 +318,83 @@ parents or children of the parent object.""",
334
318
  parents = workspace.object_set.get_objects(self.x_name.value)
335
319
 
336
320
  children = workspace.object_set.get_objects(self.y_name.value)
321
+ parent_labels = parents.segmented
322
+ child_labels = children.segmented
323
+
324
+ volumetric = parents.volumetric
325
+ parent_ijv = parents.ijv
326
+ child_ijv = children.ijv
337
327
 
338
- child_count, parents_of = parents.relate_children(children)
328
+ find_centroid = self.find_parent_child_distances in (DistanceMethod.BOTH, DistanceMethod.CENTROID)
329
+ find_minimum = self.find_parent_child_distances in (DistanceMethod.BOTH, DistanceMethod.MINIMUM)
339
330
 
340
331
  m = workspace.measurements
341
-
342
- m.add_measurement(
343
- self.y_name.value, FF_PARENT % self.x_name.value, parents_of,
332
+ all_measurements = m.to_library_measurements()
333
+ step_parent_names = self.get_parent_names()
334
+
335
+ wants_child_objects_saved = self.wants_child_objects_saved.value
336
+
337
+ # Relate Primary
338
+ lib_result = relate_objects(
339
+ parent_labels=parent_labels,
340
+ child_labels=child_labels,
341
+ parent_ijv=parent_ijv,
342
+ child_ijv=child_ijv,
343
+ parent_name=self.x_name.value,
344
+ child_name=self.y_name.value,
345
+ volumetric=volumetric,
346
+ parent_and_step_parent_names=step_parent_names,
347
+ find_centroid=find_centroid,
348
+ find_minimum=find_minimum,
349
+ child_dimensions = children.dimensions,
350
+ wants_per_parent_means=self.wants_per_parent_means.value,
351
+ measurements=all_measurements,
352
+ wants_child_objects_saved=wants_child_objects_saved,
353
+ child_small_removed_segmented=children.small_removed_segmented if wants_child_objects_saved else None,
344
354
  )
355
+ if wants_child_objects_saved:
356
+ lib_measurements, child_objects = lib_result
357
+ else:
358
+ lib_measurements = lib_result
345
359
 
346
- m.add_measurement(
347
- self.x_name.value, FF_CHILDREN_COUNT % self.y_name.value, child_count,
348
- )
360
+ # Unpack library measurements
361
+ for obj_name, features in lib_measurements.objects.items():
362
+ for feature_name, values in features.items():
363
+ m.add_measurement(obj_name, feature_name, values)
349
364
 
365
+ #
366
+ # Add the relationships to core measurements
367
+ #
368
+ # get image_numbers
369
+ parents_of = lib_measurements.get_measurement(
370
+ self.y_name.value,
371
+ TemplateMeasurementFormat.FF_PARENT % self.x_name.value
372
+ )
350
373
  good_parents = parents_of[parents_of != 0]
351
-
352
374
  image_numbers = numpy.ones(len(good_parents), int) * m.image_set_number
353
375
 
354
- good_children = numpy.argwhere(parents_of != 0).flatten() + 1
355
-
356
- if numpy.any(good_parents):
376
+ # iterate over the relationships and add them to the measurements along with the stateful values like module number and image numbers
377
+ for relationship in lib_measurements.relationships:
357
378
  m.add_relate_measurement(
358
- self.module_num,
359
- R_PARENT,
360
- self.x_name.value,
361
- self.y_name.value,
362
- image_numbers,
363
- good_parents,
364
- image_numbers,
365
- good_children,
366
- )
367
-
368
- m.add_relate_measurement(
369
- self.module_num,
370
- R_CHILD,
371
- self.y_name.value,
372
- self.x_name.value,
373
- image_numbers,
374
- good_children,
375
- image_numbers,
376
- good_parents,
377
- )
378
-
379
- parent_names = self.get_parent_names()
380
-
381
- for parent_name in parent_names:
382
- if self.find_parent_child_distances in (D_BOTH, D_CENTROID):
383
- self.calculate_centroid_distances(workspace, parent_name)
384
-
385
- if self.find_parent_child_distances in (D_BOTH, D_MINIMUM):
386
- self.calculate_minimum_distances(workspace, parent_name)
387
-
388
- if self.wants_per_parent_means.value:
389
- parent_indexes = numpy.arange(numpy.max(parents.segmented)) + 1
390
-
391
- for feature_name in m.get_feature_names(self.y_name.value):
392
- if not self.should_aggregate_feature(feature_name):
393
- continue
394
-
395
- data = m.get_current_measurement(self.y_name.value, feature_name)
396
-
397
- if data is not None and len(data) > 0:
398
- if len(parents_of) > 0:
399
- means = scipy.ndimage.mean(
400
- data.astype(float), parents_of, parent_indexes
401
- )
402
- else:
403
- means = numpy.zeros((0,))
404
- else:
405
- # No child measurements - all NaN
406
- means = numpy.ones(len(parents_of)) * numpy.nan
407
-
408
- mean_feature_name = FF_MEAN % (self.y_name.value, feature_name)
409
-
410
- m.add_measurement(self.x_name.value, mean_feature_name, means)
411
-
412
- if self.wants_child_objects_saved.value:
413
- # most of this is lifted wholesale from FilterObjects
414
- parent_labels = parents.segmented
415
-
416
- child_labels = children.segmented
417
-
418
- children_with_parents = numpy.where(parent_labels > 0, child_labels, 0)
419
-
420
- indexes = numpy.unique(children_with_parents)[1:]
421
-
422
- # Create an array that maps label indexes to their new values
423
- # All labels to be deleted have a value in this array of zero
424
- #
425
- new_object_count = len(indexes)
426
- max_label = numpy.max(child_labels)
427
- label_indexes = numpy.zeros((max_label + 1,), int)
428
- label_indexes[indexes] = numpy.arange(1, new_object_count + 1)
429
-
430
- target_labels = children.segmented.copy()
431
- #
432
- # Reindex the labels of the old source image
433
- #
434
- target_labels[target_labels > max_label] = 0
435
- target_labels = label_indexes[target_labels]
379
+ module_number=self.module_num,
380
+ relationship=relationship.relationship,
381
+ object_name1=relationship.object_name1,
382
+ object_name2=relationship.object_name2,
383
+ image_numbers1=image_numbers,
384
+ image_numbers2=image_numbers,
385
+ object_numbers1=relationship[R_FIRST_OBJECT_NUMBER],
386
+ object_numbers2=relationship[R_SECOND_OBJECT_NUMBER],
387
+ )
388
+ if wants_child_objects_saved:
436
389
  #
437
390
  # Make a new set of objects - retain the old set's unedited
438
391
  # segmentation for the new and generally try to copy stuff
439
392
  # from the old to the new.
440
393
  #
441
394
  target_objects = cellprofiler_core.object.Objects()
442
- target_objects.segmented = target_labels
395
+ target_objects.segmented = child_objects.segmented
443
396
  target_objects.unedited_segmented = children.unedited_segmented
444
- #
445
- # Remove the filtered objects from the small_removed_segmented
446
- # if present. "small_removed_segmented" should really be
447
- # "filtered_removed_segmented".
448
- #
449
- small_removed = children.small_removed_segmented.copy()
450
- small_removed[(target_labels == 0) & (children.segmented != 0)] = 0
451
- target_objects.small_removed_segmented = small_removed
397
+ target_objects.small_removed_segmented = child_objects.small_removed_segmented
452
398
  if children.has_parent_image:
453
399
  target_objects.parent_image = children.parent_image
454
400
  workspace.object_set.add_objects(
@@ -546,229 +492,13 @@ parents or children of the parent object.""",
546
492
 
547
493
  return parent_names
548
494
 
549
- def calculate_centroid_distances(self, workspace, parent_name):
550
- """Calculate the centroid-centroid distance between parent & child"""
551
- meas = workspace.measurements
552
-
553
- sub_object_name = self.y_name.value
554
-
555
- parents = workspace.object_set.get_objects(parent_name)
556
-
557
- children = workspace.object_set.get_objects(sub_object_name)
558
-
559
- parents_of = self.get_parents_of(workspace, parent_name)
560
-
561
- pcenters = parents.center_of_mass()
562
-
563
- ccenters = children.center_of_mass()
564
-
565
- if pcenters.shape[0] == 0 or ccenters.shape[0] == 0:
566
- dist = numpy.array([numpy.NaN] * len(parents_of))
567
- else:
568
- #
569
- # Make indexing of parents_of be same as pcenters
570
- #
571
- parents_of = parents_of - 1
572
-
573
- mask = (parents_of != -1) | (parents_of > pcenters.shape[0])
574
-
575
- dist = numpy.array([numpy.NaN] * ccenters.shape[0])
576
-
577
- dist[mask] = numpy.sqrt(
578
- numpy.sum((ccenters[mask, :] - pcenters[parents_of[mask], :]) ** 2, 1)
579
- )
580
-
581
- meas.add_measurement(sub_object_name, FF_CENTROID % parent_name, dist)
582
-
583
- def calculate_minimum_distances(self, workspace, parent_name):
584
- """Calculate the distance from child center to parent perimeter"""
585
- meas = workspace.measurements
586
-
587
- sub_object_name = self.y_name.value
588
-
589
- parents = workspace.object_set.get_objects(parent_name)
590
-
591
- children = workspace.object_set.get_objects(sub_object_name)
592
-
593
- parents_of = self.get_parents_of(workspace, parent_name)
594
-
595
- if len(parents_of) == 0:
596
- dist = numpy.zeros((0,))
597
- elif numpy.all(parents_of == 0):
598
- dist = numpy.array([numpy.NaN] * len(parents_of))
599
- else:
600
- mask = parents_of > 0
601
-
602
- ccenters = children.center_of_mass()
603
-
604
- ccenters = ccenters[mask, :]
605
-
606
- parents_of_masked = parents_of[mask] - 1
607
-
608
- pperim = (
609
- skimage.segmentation.find_boundaries(parents.segmented, mode="inner")
610
- * parents.segmented
611
- )
612
-
613
- # Get a list of all points on the perimeter
614
- perim_loc = numpy.argwhere(pperim != 0)
615
-
616
- # Get the label # for each point
617
- # multidimensional indexing with non-tuple values not allowed as of numpy 1.23
618
- perim_loc_t = tuple(map(tuple, perim_loc.transpose()))
619
- perim_idx = pperim[perim_loc_t]
620
-
621
- # Sort the points by label #
622
- reverse_column_order = list(range(children.dimensions))[::-1]
623
-
624
- coordinates = perim_loc[:, reverse_column_order].transpose().tolist()
625
-
626
- coordinates.append(perim_idx)
627
-
628
- idx = numpy.lexsort(coordinates)
629
-
630
- perim_loc = perim_loc[idx, :]
631
-
632
- perim_idx = perim_idx[idx]
633
-
634
- # Get counts and indexes to each run of perimeter points
635
- counts = scipy.ndimage.sum(
636
- numpy.ones(len(perim_idx)),
637
- perim_idx,
638
- numpy.arange(1, perim_idx[-1] + 1),
639
- ).astype(numpy.int32)
640
-
641
- indexes = numpy.cumsum(counts) - counts
642
-
643
- # For the children, get the index and count of the parent
644
- ccounts = counts[parents_of_masked]
645
-
646
- cindexes = indexes[parents_of_masked]
647
-
648
- # Now make an array that has an element for each of that child's perimeter points
649
- clabel = numpy.zeros(numpy.sum(ccounts), int)
650
-
651
- # cfirst is the eventual first index of each child in the clabel array
652
- cfirst = numpy.cumsum(ccounts) - ccounts
653
-
654
- clabel[cfirst[1:]] += 1
655
-
656
- clabel = numpy.cumsum(clabel)
657
-
658
- # Make an index that runs from 0 to ccounts for each child label.
659
- cp_index = numpy.arange(len(clabel)) - cfirst[clabel]
660
-
661
- # then add cindexes to get an index to the perimeter point
662
- cp_index += cindexes[clabel]
663
-
664
- # Now, calculate the distance from the centroid of each label to each perimeter point in the parent.
665
- dist = numpy.sqrt(
666
- numpy.sum((perim_loc[cp_index, :] - ccenters[clabel, :]) ** 2, 1)
667
- )
668
-
669
- # Finally, find the minimum distance per child
670
- min_dist = scipy.ndimage.minimum(dist, clabel, numpy.arange(len(ccounts)))
671
-
672
- # Account for unparented children
673
- dist = numpy.array([numpy.NaN] * len(mask))
674
-
675
- dist[mask] = min_dist
676
-
677
- meas.add_measurement(sub_object_name, FF_MINIMUM % parent_name, dist)
678
-
679
- def get_parents_of(self, workspace, parent_name):
680
- """Return the parents_of measurement or equivalent
681
- parent_name - name of parent objects
682
-
683
- Return a vector of parent indexes to the given parent name using
684
- the Parent measurement. Look for a direct parent / child link first
685
- and then look for relationships between self.parent_name and the
686
- named parent.
687
- """
688
- meas = workspace.measurements
689
-
690
- parent_feature = FF_PARENT % parent_name
691
-
692
- primary_parent = self.x_name.value
693
-
694
- sub_object_name = self.y_name.value
695
-
696
- primary_parent_feature = FF_PARENT % primary_parent
697
-
698
- if parent_feature in meas.get_feature_names(sub_object_name):
699
- parents_of = meas.get_current_measurement(sub_object_name, parent_feature)
700
- elif parent_feature in meas.get_feature_names(primary_parent):
701
- #
702
- # parent_name is the grandparent of the sub-object via
703
- # the primary parent.
704
- #
705
- primary_parents_of = meas.get_current_measurement(
706
- sub_object_name, primary_parent_feature
707
- )
708
-
709
- grandparents_of = meas.get_current_measurement(
710
- primary_parent, parent_feature
711
- )
712
-
713
- mask = primary_parents_of != 0
714
-
715
- parents_of = numpy.zeros(primary_parents_of.shape[0], grandparents_of.dtype)
716
-
717
- if primary_parents_of.shape[0] > 0:
718
- parents_of[mask] = grandparents_of[primary_parents_of[mask] - 1]
719
- elif primary_parent_feature in meas.get_feature_names(parent_name):
720
- primary_parents_of = meas.get_current_measurement(
721
- sub_object_name, primary_parent_feature
722
- )
723
-
724
- primary_parents_of_parent = meas.get_current_measurement(
725
- parent_name, primary_parent_feature
726
- )
727
-
728
- if len(primary_parents_of_parent) == 0:
729
- return primary_parents_of_parent
730
-
731
- #
732
- # There may not be a 1-1 relationship, but we attempt to
733
- # construct one
734
- #
735
- reverse_lookup_len = max(
736
- numpy.max(primary_parents_of) + 1, len(primary_parents_of_parent)
737
- )
738
-
739
- reverse_lookup = numpy.zeros(reverse_lookup_len, int)
740
-
741
- if primary_parents_of_parent.shape[0] > 0:
742
- reverse_lookup[primary_parents_of_parent] = numpy.arange(
743
- 1, len(primary_parents_of_parent) + 1
744
- )
745
-
746
- if primary_parents_of.shape[0] > 0:
747
- parents_of = reverse_lookup[primary_parents_of]
748
- else:
749
- raise ValueError(
750
- "Don't know how to relate {} to {}".format(primary_parent, parent_name)
751
- )
752
-
753
- return parents_of
754
-
755
- ignore_features = set(M_NUMBER_OBJECT_NUMBER)
756
495
 
757
496
  def should_aggregate_feature(self, feature_name):
758
497
  """Return True if aggregate measurements should be made on a feature
759
498
 
760
499
  feature_name - name of a measurement, such as Location_Center_X
761
500
  """
762
- if feature_name.startswith(C_MEAN):
763
- return False
764
-
765
- if feature_name.startswith(C_PARENT):
766
- return False
767
-
768
- if feature_name in self.ignore_features:
769
- return False
770
-
771
- return True
501
+ return _should_aggregate_feature(feature_name)
772
502
 
773
503
  def validate_module(self, pipeline):
774
504
  """Validate the module's settings
@@ -819,13 +549,13 @@ parents or children of the parent object.""",
819
549
 
820
550
  def get_child_measurement_columns(self, pipeline):
821
551
  columns = []
822
- if self.find_parent_child_distances in (D_BOTH, D_CENTROID):
552
+ if self.find_parent_child_distances in (DistanceMethod.BOTH, DistanceMethod.CENTROID):
823
553
  for parent_name in self.get_parent_names():
824
- columns += [(self.y_name.value, FF_CENTROID % parent_name, "integer",)]
554
+ columns += [(self.y_name.value, TemplateMeasurementFormat.FF_CENTROID % parent_name, "integer",)]
825
555
 
826
- if self.find_parent_child_distances in (D_BOTH, D_MINIMUM):
556
+ if self.find_parent_child_distances in (DistanceMethod.BOTH, DistanceMethod.MINIMUM):
827
557
  for parent_name in self.get_parent_names():
828
- columns += [(self.y_name.value, FF_MINIMUM % parent_name, "integer",)]
558
+ columns += [(self.y_name.value, TemplateMeasurementFormat.FF_MINIMUM % parent_name, "integer",)]
829
559
 
830
560
  return columns
831
561
 
@@ -852,8 +582,8 @@ parents or children of the parent object.""",
852
582
  """Return the column definitions for this module's measurements"""
853
583
 
854
584
  columns = [
855
- (self.y_name.value, FF_PARENT % self.x_name.value, "integer",),
856
- (self.x_name.value, FF_CHILDREN_COUNT % self.y_name.value, "integer",),
585
+ (self.y_name.value, TemplateMeasurementFormat.FF_PARENT % self.x_name.value, "integer",),
586
+ (self.x_name.value, TemplateMeasurementFormat.FF_CHILDREN_COUNT % self.y_name.value, "integer",),
857
587
  ]
858
588
 
859
589
  if self.wants_child_objects_saved:
@@ -865,7 +595,7 @@ parents or children of the parent object.""",
865
595
  columns += [
866
596
  (
867
597
  self.x_name.value,
868
- FF_MEAN % (self.y_name.value, column[1]),
598
+ TemplateMeasurementFormat.FF_MEAN % (self.y_name.value, column[1]),
869
599
  COLTYPE_FLOAT,
870
600
  )
871
601
  for column in child_columns
@@ -882,8 +612,8 @@ parents or children of the parent object.""",
882
612
  sub_object_name = self.y_name.value
883
613
 
884
614
  return [
885
- (R_PARENT, parent_name, sub_object_name, MCA_AVAILABLE_EACH_CYCLE,),
886
- (R_CHILD, sub_object_name, parent_name, MCA_AVAILABLE_EACH_CYCLE,),
615
+ (Relationship.PARENT.value, parent_name, sub_object_name, MCA_AVAILABLE_EACH_CYCLE,),
616
+ (Relationship.CHILD.value, sub_object_name, parent_name, MCA_AVAILABLE_EACH_CYCLE,),
887
617
  ]
888
618
 
889
619
  def get_categories(self, pipeline, object_name):
@@ -896,7 +626,7 @@ parents or children of the parent object.""",
896
626
  elif object_name == self.y_name.value:
897
627
  result = ["Parent"]
898
628
 
899
- if self.find_parent_child_distances != D_NONE:
629
+ if self.find_parent_child_distances != DistanceMethod.NONE:
900
630
  result += [C_DISTANCE]
901
631
  elif object_name == "Image":
902
632
  result += [C_COUNT]
@@ -924,13 +654,13 @@ parents or children of the parent object.""",
924
654
  elif object_name == self.y_name.value and category == C_DISTANCE:
925
655
  result = []
926
656
 
927
- if self.find_parent_child_distances in (D_BOTH, D_CENTROID):
657
+ if self.find_parent_child_distances in (DistanceMethod.BOTH, DistanceMethod.CENTROID):
928
658
  result += [
929
659
  "{}_{}".format(FEAT_CENTROID, parent_name)
930
660
  for parent_name in self.get_parent_names()
931
661
  ]
932
662
 
933
- if self.find_parent_child_distances in (D_BOTH, D_MINIMUM):
663
+ if self.find_parent_child_distances in (DistanceMethod.BOTH, DistanceMethod.MINIMUM):
934
664
  result += [
935
665
  "{}_{}".format(FEAT_MINIMUM, parent_name)
936
666
  for parent_name in self.get_parent_names()
@@ -977,7 +707,7 @@ parents or children of the parent object.""",
977
707
  # Added other distance parents
978
708
  #
979
709
  if setting_values[2] == "Do not use":
980
- find_parent_distances = D_NONE
710
+ find_parent_distances = DistanceMethod.NONE
981
711
  else:
982
712
  find_parent_distances = setting_values[2]
983
713
 
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "5.0.0.dev0",
3
- "distance": 707,
4
- "node": "g2b3417b862db5d8adeef5cf561f721d981b9c880",
5
- "dirty": true,
6
- "branch": "main",
7
- "node_date": "2026-09-10"
8
- }