PartSegCore-compiled-backend 0.15.1__tar.gz → 0.15.4__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 (229) hide show
  1. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/.github/workflows/wheels.yml +25 -12
  2. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/.gitignore +2 -0
  3. PartSegCore_compiled_backend-0.15.4/.readthedocs.yaml +35 -0
  4. PartSegCore_compiled_backend-0.15.4/PKG-INFO +72 -0
  5. PartSegCore_compiled_backend-0.15.4/Readme.md +39 -0
  6. PartSegCore_compiled_backend-0.15.4/build_utils/build_libomp.sh +14 -0
  7. PartSegCore_compiled_backend-0.15.4/docs/Makefile +20 -0
  8. PartSegCore_compiled_backend-0.15.4/docs/calc_bounds.rst +5 -0
  9. PartSegCore_compiled_backend-0.15.4/docs/conf.py +52 -0
  10. PartSegCore_compiled_backend-0.15.4/docs/fast_unique.rst +5 -0
  11. PartSegCore_compiled_backend-0.15.4/docs/index.rst +34 -0
  12. PartSegCore_compiled_backend-0.15.4/docs/make.bat +35 -0
  13. PartSegCore_compiled_backend-0.15.4/docs/napari_mapping.rst +5 -0
  14. PartSegCore_compiled_backend-0.15.4/docs/sprawl_utils.rst +5 -0
  15. PartSegCore_compiled_backend-0.15.4/notebooks/data_util.py +153 -0
  16. PartSegCore_compiled_backend-0.15.4/notebooks/performance_label_unique.ipynb +262 -0
  17. PartSegCore_compiled_backend-0.15.4/notebooks/performance_napari.ipynb +408 -0
  18. PartSegCore_compiled_backend-0.15.4/pyproject.toml +130 -0
  19. PartSegCore_compiled_backend-0.15.4/setup.cfg +4 -0
  20. PartSegCore_compiled_backend-0.15.4/setup.py +101 -0
  21. PartSegCore_compiled_backend-0.15.4/src/PartSegCore_compiled_backend/__init__.py +3 -0
  22. PartSegCore_compiled_backend-0.15.4/src/PartSegCore_compiled_backend/_fast_unique.pyx +107 -0
  23. PartSegCore_compiled_backend-0.15.4/src/PartSegCore_compiled_backend/_napari_mapping.pyx +90 -0
  24. PartSegCore_compiled_backend-0.15.1/src/PartSegCore_compiled_backend/utils.pyx → PartSegCore_compiled_backend-0.15.4/src/PartSegCore_compiled_backend/calc_bounds.pyx +87 -19
  25. PartSegCore_compiled_backend-0.15.4/src/PartSegCore_compiled_backend/fast_unique.py +39 -0
  26. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/multiscale_opening/__init__.py +1 -1
  27. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/multiscale_opening/mso_bind.pyx +3 -3
  28. PartSegCore_compiled_backend-0.15.4/src/PartSegCore_compiled_backend/napari_mapping.py +122 -0
  29. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/sprawl_utils/find_split.py +121 -52
  30. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/sprawl_utils/put_borders_in_queue.pyx +2 -2
  31. PartSegCore_compiled_backend-0.15.4/src/PartSegCore_compiled_backend/utils.py +3 -0
  32. PartSegCore_compiled_backend-0.15.4/src/PartSegCore_compiled_backend/version.py +16 -0
  33. PartSegCore_compiled_backend-0.15.4/src/PartSegCore_compiled_backend.egg-info/PKG-INFO +72 -0
  34. PartSegCore_compiled_backend-0.15.4/src/PartSegCore_compiled_backend.egg-info/SOURCES.txt +63 -0
  35. PartSegCore_compiled_backend-0.15.4/src/PartSegCore_compiled_backend.egg-info/requires.txt +7 -0
  36. PartSegCore_compiled_backend-0.15.1/src/tests/test_utils.py → PartSegCore_compiled_backend-0.15.4/src/tests/test_calc_bounds.py +3 -3
  37. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/tests/test_coloring.py +3 -3
  38. PartSegCore_compiled_backend-0.15.4/src/tests/test_fast_unique.py +24 -0
  39. PartSegCore_compiled_backend-0.15.4/src/tests/test_napari_mapping.py +59 -0
  40. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Compiler/Code.pxd +0 -124
  41. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Compiler/FlowControl.pxd +0 -111
  42. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Compiler/ParseTreeTransforms.pxd +0 -82
  43. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Compiler/Parsing.pxd +0 -199
  44. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Compiler/Scanning.pxd +0 -67
  45. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Compiler/Visitor.pxd +0 -55
  46. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python.pxd +0 -2
  47. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_bool.pxd +0 -2
  48. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_buffer.pxd +0 -2
  49. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_bytes.pxd +0 -2
  50. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_cobject.pxd +0 -2
  51. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_complex.pxd +0 -2
  52. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_dict.pxd +0 -2
  53. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_exc.pxd +0 -2
  54. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_float.pxd +0 -2
  55. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_function.pxd +0 -2
  56. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_getargs.pxd +0 -2
  57. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_instance.pxd +0 -2
  58. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_int.pxd +0 -2
  59. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_iterator.pxd +0 -2
  60. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_list.pxd +0 -2
  61. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_long.pxd +0 -2
  62. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_mapping.pxd +0 -2
  63. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_mem.pxd +0 -2
  64. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_method.pxd +0 -2
  65. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_module.pxd +0 -2
  66. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_number.pxd +0 -2
  67. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_object.pxd +0 -2
  68. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_oldbuffer.pxd +0 -2
  69. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_pycapsule.pxd +0 -2
  70. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_ref.pxd +0 -2
  71. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_sequence.pxd +0 -2
  72. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_set.pxd +0 -2
  73. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_string.pxd +0 -2
  74. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_tuple.pxd +0 -2
  75. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_type.pxd +0 -2
  76. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_unicode.pxd +0 -2
  77. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_version.pxd +0 -2
  78. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/python_weakref.pxd +0 -2
  79. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/stdio.pxd +0 -2
  80. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/stdlib.pxd +0 -2
  81. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/Deprecated/stl.pxd +0 -91
  82. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/__init__.pxd +0 -184
  83. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/array.pxd +0 -163
  84. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/bool.pxd +0 -38
  85. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/buffer.pxd +0 -112
  86. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/bytearray.pxd +0 -33
  87. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/bytes.pxd +0 -198
  88. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/cellobject.pxd +0 -35
  89. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/ceval.pxd +0 -8
  90. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/cobject.pxd +0 -36
  91. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/codecs.pxd +0 -121
  92. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/complex.pxd +0 -50
  93. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/conversion.pxd +0 -36
  94. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/datetime.pxd +0 -212
  95. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/dict.pxd +0 -165
  96. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/exc.pxd +0 -257
  97. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/float.pxd +0 -39
  98. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/function.pxd +0 -65
  99. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/genobject.pxd +0 -25
  100. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/getargs.pxd +0 -12
  101. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/instance.pxd +0 -25
  102. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/int.pxd +0 -89
  103. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/iterator.pxd +0 -36
  104. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/iterobject.pxd +0 -24
  105. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/list.pxd +0 -92
  106. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/long.pxd +0 -149
  107. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/longintrepr.pxd +0 -19
  108. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/mapping.pxd +0 -64
  109. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/mem.pxd +0 -111
  110. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/memoryview.pxd +0 -50
  111. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/method.pxd +0 -49
  112. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/module.pxd +0 -188
  113. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/number.pxd +0 -265
  114. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/object.pxd +0 -399
  115. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/oldbuffer.pxd +0 -63
  116. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/pycapsule.pxd +0 -144
  117. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/pylifecycle.pxd +0 -68
  118. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/pystate.pxd +0 -92
  119. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/pythread.pxd +0 -53
  120. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/ref.pxd +0 -51
  121. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/sequence.pxd +0 -136
  122. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/set.pxd +0 -119
  123. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/slice.pxd +0 -70
  124. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/string.pxd +0 -198
  125. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/tuple.pxd +0 -71
  126. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/type.pxd +0 -48
  127. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/unicode.pxd +0 -572
  128. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/version.pxd +0 -32
  129. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/cpython/weakref.pxd +0 -42
  130. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libc/__init__.pxd +0 -1
  131. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libc/errno.pxd +0 -128
  132. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libc/float.pxd +0 -43
  133. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libc/limits.pxd +0 -28
  134. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libc/locale.pxd +0 -46
  135. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libc/math.pxd +0 -112
  136. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libc/setjmp.pxd +0 -10
  137. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libc/signal.pxd +0 -64
  138. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libc/stddef.pxd +0 -9
  139. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libc/stdint.pxd +0 -105
  140. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libc/stdio.pxd +0 -80
  141. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libc/stdlib.pxd +0 -72
  142. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libc/string.pxd +0 -50
  143. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libc/time.pxd +0 -46
  144. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/__init__.pxd +0 -4
  145. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/algorithm.pxd +0 -43
  146. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/cast.pxd +0 -12
  147. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/complex.pxd +0 -101
  148. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/deque.pxd +0 -86
  149. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/forward_list.pxd +0 -62
  150. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/functional.pxd +0 -13
  151. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/iterator.pxd +0 -32
  152. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/limits.pxd +0 -61
  153. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/list.pxd +0 -78
  154. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/map.pxd +0 -68
  155. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/memory.pxd +0 -115
  156. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/pair.pxd +0 -1
  157. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/queue.pxd +0 -25
  158. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/set.pxd +0 -61
  159. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/stack.pxd +0 -11
  160. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/string.pxd +0 -227
  161. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/typeindex.pxd +0 -15
  162. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/typeinfo.pxd +0 -10
  163. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/unordered_map.pxd +0 -74
  164. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/unordered_set.pxd +0 -69
  165. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/utility.pxd +0 -30
  166. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/libcpp/vector.pxd +0 -88
  167. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/numpy/__init__.pxd +0 -1049
  168. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/numpy/math.pxd +0 -133
  169. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/openmp.pxd +0 -51
  170. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/posix/__init__.pxd +0 -1
  171. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/posix/dlfcn.pxd +0 -14
  172. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/posix/fcntl.pxd +0 -68
  173. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/posix/ioctl.pxd +0 -4
  174. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/posix/mman.pxd +0 -99
  175. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/posix/resource.pxd +0 -55
  176. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/posix/select.pxd +0 -19
  177. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/posix/signal.pxd +0 -73
  178. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/posix/stat.pxd +0 -71
  179. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/posix/stdio.pxd +0 -37
  180. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/posix/stdlib.pxd +0 -29
  181. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/posix/strings.pxd +0 -9
  182. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/posix/time.pxd +0 -71
  183. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/posix/types.pxd +0 -30
  184. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/posix/unistd.pxd +0 -271
  185. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Includes/posix/wait.pxd +0 -38
  186. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Plex/Actions.pxd +0 -25
  187. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Plex/Scanners.pxd +0 -50
  188. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Runtime/refnanny.pyx +0 -194
  189. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Utility/CConvert.pyx +0 -132
  190. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Utility/CpdefEnums.pyx +0 -66
  191. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Utility/CppConvert.pyx +0 -237
  192. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Utility/MemoryView.pyx +0 -1496
  193. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Utility/TestCyUtilityLoader.pyx +0 -8
  194. PartSegCore_compiled_backend-0.15.1/.eggs/Cython-0.29.34-py3.10-linux-x86_64.egg/Cython/Utility/TestCythonScope.pyx +0 -64
  195. PartSegCore_compiled_backend-0.15.1/PKG-INFO +0 -36
  196. PartSegCore_compiled_backend-0.15.1/Readme.md +0 -6
  197. PartSegCore_compiled_backend-0.15.1/pyproject.toml +0 -49
  198. PartSegCore_compiled_backend-0.15.1/setup.cfg +0 -81
  199. PartSegCore_compiled_backend-0.15.1/setup.py +0 -76
  200. PartSegCore_compiled_backend-0.15.1/src/PartSegCore_compiled_backend/version.py +0 -4
  201. PartSegCore_compiled_backend-0.15.1/src/PartSegCore_compiled_backend.egg-info/PKG-INFO +0 -36
  202. PartSegCore_compiled_backend-0.15.1/src/PartSegCore_compiled_backend.egg-info/SOURCES.txt +0 -198
  203. PartSegCore_compiled_backend-0.15.1/src/PartSegCore_compiled_backend.egg-info/requires.txt +0 -5
  204. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/License.txt +0 -0
  205. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/MANIFEST.in +0 -0
  206. /PartSegCore_compiled_backend-0.15.1/src/PartSegCore_compiled_backend/__init__.py → /PartSegCore_compiled_backend-0.15.4/src/PartSegCore_compiled_backend/_fast_unique.pyi +0 -0
  207. /PartSegCore_compiled_backend-0.15.1/src/PartSegCore_compiled_backend/utils.pyi → /PartSegCore_compiled_backend-0.15.4/src/PartSegCore_compiled_backend/calc_bounds.pyi +0 -0
  208. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/color_image_cython.pyi +0 -0
  209. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/color_image_cython.pyx +0 -0
  210. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/multiscale_opening/mso.cpp +0 -0
  211. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/multiscale_opening/mso.h +0 -0
  212. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/multiscale_opening/mso_bind.pyi +0 -0
  213. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/multiscale_opening/my_queue.h +0 -0
  214. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/sprawl_utils/__init__.py +0 -0
  215. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/sprawl_utils/distance_utils.pxd +0 -0
  216. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/sprawl_utils/euclidean_cython.pyi +0 -0
  217. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/sprawl_utils/euclidean_cython.pyx +0 -0
  218. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/sprawl_utils/find_split.pyi +0 -0
  219. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/sprawl_utils/fuzzy_distance.pyx +0 -0
  220. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/sprawl_utils/global_consts.h +0 -0
  221. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/sprawl_utils/my_queue.h +0 -0
  222. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/sprawl_utils/path_sprawl_cython.pyi +0 -0
  223. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/sprawl_utils/path_sprawl_cython.pyx +0 -0
  224. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/sprawl_utils/sprawl_utils.pyi +0 -0
  225. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend/sprawl_utils/sprawl_utils.pyx +0 -0
  226. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend.egg-info/dependency_links.txt +0 -0
  227. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/PartSegCore_compiled_backend.egg-info/top_level.txt +0 -0
  228. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/tests/test_sprawl_utils/__init__.py +0 -0
  229. {PartSegCore_compiled_backend-0.15.1 → PartSegCore_compiled_backend-0.15.4}/src/tests/test_sprawl_utils/test_euclidean.py +0 -0
@@ -2,7 +2,7 @@ name: Wheels
2
2
 
3
3
  on:
4
4
  push:
5
- branch:
5
+ branches:
6
6
  - master
7
7
  tags:
8
8
  - '*'
@@ -10,6 +10,9 @@ on:
10
10
  branches:
11
11
  - '**'
12
12
 
13
+ concurrency:
14
+ group: wheel-${{ github.ref }}
15
+ cancel-in-progress: true
13
16
 
14
17
  jobs:
15
18
  test:
@@ -19,17 +22,25 @@ jobs:
19
22
  fail-fast: false
20
23
  matrix:
21
24
  os: [windows-latest, macos-latest, ubuntu-latest]
22
- python_version: ['3.8', '3.9' , '3.10', '3.11']
25
+ python_version: ['3.9' , '3.10', '3.11', '3.12']
23
26
  steps:
24
27
  - uses: actions/checkout@v3
25
28
  - uses: actions/setup-python@v4
26
29
  name: Install Python ${{ matrix.python_version }}
27
30
  with:
28
31
  python-version: ${{ matrix.python_version }}
32
+ - name: install openbls
33
+ if: runner.os == 'macOS'
34
+ run: brew install libomp
29
35
  - name: Install tox
30
36
  run: pip install tox numpy tox-gh-actions
31
- - name: Test PartSeg
37
+ - name: Test Backend
38
+ run: OPENBLAS="$(brew --prefix openblas)" OMP="$(brew --prefix libomp)" tox
39
+ if: runner.os == 'macOS'
40
+ - name: Test Backend
32
41
  run: tox
42
+ if: runner.os != 'macOS'
43
+
33
44
 
34
45
  build_wheels:
35
46
  needs: test
@@ -49,7 +60,7 @@ jobs:
49
60
  run: brew install openblas
50
61
 
51
62
  - name: Build wheels
52
- uses: pypa/cibuildwheel@v2.11.4
63
+ uses: pypa/cibuildwheel@v2.16.2
53
64
  env:
54
65
  OPENBLAS: "$(brew --prefix openblas)"
55
66
 
@@ -73,8 +84,8 @@ jobs:
73
84
 
74
85
  - name: Build sdist
75
86
  run: |
76
- pip install numpy
77
- python setup.py sdist
87
+ pip install build
88
+ python -m build --sdist .
78
89
 
79
90
  - uses: actions/upload-artifact@v3
80
91
  with:
@@ -83,18 +94,20 @@ jobs:
83
94
  upload_pypi:
84
95
  needs: [build_wheels, build_sdist]
85
96
  runs-on: ubuntu-latest
97
+ environment:
98
+ name: pypi
99
+ url: https://pypi.org/p/PartSegCore-compiled-backend
100
+ permissions:
101
+ id-token: write # IMPORTANT: mandatory for trusted publishing
86
102
  # upload to PyPI on every tag starting with 'v'
87
103
  if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')
88
104
  # alternatively, to publish when a GitHub Release is created, use the following rule:
89
105
  # if: github.event_name == 'release' && github.event.action == 'published'
90
106
  steps:
91
- - uses: actions/download-artifact@v2
107
+ - uses: actions/download-artifact@v3
92
108
  with:
93
109
  name: artifact
94
110
  path: dist
95
111
 
96
- - uses: pypa/gh-action-pypi-publish@master
97
- with:
98
- user: __token__
99
- password: ${{ secrets.PYPI_API_TOKEN }}
100
- # To test: repository_url: https://test.pypi.org/legacy/
112
+ - name: Publish distribution 📦 to PyPI
113
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -1,5 +1,7 @@
1
1
  *.cpp
2
2
  src/PartSegCore_compiled_backend/version.py
3
+ src/**.html
4
+ *.html
3
5
 
4
6
  # Created by https://www.toptal.com/developers/gitignore/api/pycharm+all,jupyternotebooks,python,code,vim,macos,linux,windows
5
7
  # Edit at https://www.toptal.com/developers/gitignore?templates=pycharm+all,jupyternotebooks,python,code,vim,macos,linux,windows
@@ -0,0 +1,35 @@
1
+ # .readthedocs.yaml
2
+ # Read the Docs configuration file
3
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4
+
5
+ # Required
6
+ version: 2
7
+
8
+ # Set the OS, Python version and other tools you might need
9
+ build:
10
+ os: ubuntu-22.04
11
+ tools:
12
+ python: "3.12"
13
+ # You can also specify other tool versions:
14
+ # nodejs: "19"
15
+ # rust: "1.64"
16
+ # golang: "1.19"
17
+
18
+ # Build documentation in the "docs/" directory with Sphinx
19
+ sphinx:
20
+ configuration: docs/conf.py
21
+
22
+ # Optionally build your docs in additional formats such as PDF and ePub
23
+ # formats:
24
+ # - pdf
25
+ # - epub
26
+
27
+ # Optional but recommended, declare the Python requirements required
28
+ # to build your documentation
29
+ # See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
30
+ python:
31
+ install:
32
+ - method: pip
33
+ path: .
34
+ extra_requirements:
35
+ - docs
@@ -0,0 +1,72 @@
1
+ Metadata-Version: 2.1
2
+ Name: PartSegCore_compiled_backend
3
+ Version: 0.15.4
4
+ Summary: PartSegCore compiled backend,
5
+ Author-email: Grzegorz Bokota <g.bokota@cent.uw.edu.pl>
6
+ License: BSD-3-Clause
7
+ Project-URL: Homepage, https://4dnucleome.cent.uw.edu.pl/PartSeg/
8
+ Project-URL: Documentation, https://partsegcore-compiled-backend.readthedocs.io/en/stable/
9
+ Project-URL: Source Code, https://github.com/4DNucleome/PartSegCore-compiled-backend
10
+ Keywords: bioimaging
11
+ Platform: Linux
12
+ Platform: Windows
13
+ Platform: MacOs
14
+ Classifier: Development Status :: 3 - Alpha
15
+ Classifier: License :: OSI Approved :: BSD License
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3 :: Only
19
+ Classifier: Programming Language :: Python :: 3.9
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: Implementation :: CPython
24
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
25
+ Requires-Python: >=3.9
26
+ Description-Content-Type: text/markdown
27
+ License-File: License.txt
28
+ Requires-Dist: numpy>=1.25.0
29
+ Provides-Extra: test
30
+ Requires-Dist: pytest>=7.0.0; extra == "test"
31
+ Provides-Extra: docs
32
+ Requires-Dist: sphinx>=5.0.0; extra == "docs"
33
+
34
+ # PartSegCore_compiled_backend
35
+
36
+ ![Contributions](https://img.shields.io/badge/Contributions-Welcome-brightgreen.svg)
37
+ [![Wheels](https://github.com/4DNucleome/PartSegCore-compiled-backend/actions/workflows/wheels.yml/badge.svg?branch=master)](https://github.com/4DNucleome/PartSegCore-compiled-backend/actions/workflows/wheels.yml)
38
+ [![PyPI version](https://badge.fury.io/py/PartSegCore_compiled_backend.svg)](https://pypi.org/project/PartSegCore-compiled-backend/)
39
+ [![Anaconda-Server Badge](https://anaconda.org/conda-forge/partsegcore-compiled-backend/badges/version.svg)](https://anaconda.org/conda-forge/partsegcore-compiled-backend)
40
+ [![Python Version](https://img.shields.io/pypi/pyversions/partsegcore-compiled-backend.svg)](https://pypi.org/project/partsegcore-compiled-backend)
41
+ [![Documentation Status](https://readthedocs.org/projects/partsegcore-compiled-backend/badge/?version=stable)](https://partsegcore-compiled-backend.readthedocs.io/en/stable/)
42
+ [![Publication DOI](https://img.shields.io/badge/Publication%20DOI-10.1186%2Fs12859--021--03984--1-blue)](https://doi.org/10.1186/s12859-021-03984-1)
43
+
44
+ This is a package with all cython/c++ backend for ParSeg
45
+
46
+ Current release extracted from PartSegCore module to avoid building multiple wheels
47
+ for the main package and speedup tests.
48
+
49
+ This package requires `libomp` for build.
50
+ On linux it can be installed with `apt install libomp-dev` or `yum install libomp-devel`.
51
+ On macOS it can be installed with `brew install libomp`.
52
+
53
+ As `clang` version created on macOS do not have native openmp `brew` do
54
+ not set `libomp` as default visible.
55
+ If you install `libomp` with `brew` and want to build package
56
+ from source you need to set `OMP` variable to `libomp` location.
57
+
58
+ For example:
59
+
60
+ ```bash
61
+ export OMP="$(brew --prefix libomp)"
62
+ pip install .
63
+ ```
64
+
65
+ As currently there is no wheel for macOS ARM64
66
+ it is required to build package from source.
67
+
68
+ ## Cite as
69
+
70
+ Bokota, G., Sroka, J., Basu, S. et al. PartSeg: a tool for quantitative feature extraction
71
+ from 3D microscopy images for dummies. BMC Bioinformatics 22, 72 (2021).
72
+ [https://doi.org/10.1186/s12859-021-03984-1](https://doi.org/10.1186/s12859-021-03984-1)
@@ -0,0 +1,39 @@
1
+ # PartSegCore_compiled_backend
2
+
3
+ ![Contributions](https://img.shields.io/badge/Contributions-Welcome-brightgreen.svg)
4
+ [![Wheels](https://github.com/4DNucleome/PartSegCore-compiled-backend/actions/workflows/wheels.yml/badge.svg?branch=master)](https://github.com/4DNucleome/PartSegCore-compiled-backend/actions/workflows/wheels.yml)
5
+ [![PyPI version](https://badge.fury.io/py/PartSegCore_compiled_backend.svg)](https://pypi.org/project/PartSegCore-compiled-backend/)
6
+ [![Anaconda-Server Badge](https://anaconda.org/conda-forge/partsegcore-compiled-backend/badges/version.svg)](https://anaconda.org/conda-forge/partsegcore-compiled-backend)
7
+ [![Python Version](https://img.shields.io/pypi/pyversions/partsegcore-compiled-backend.svg)](https://pypi.org/project/partsegcore-compiled-backend)
8
+ [![Documentation Status](https://readthedocs.org/projects/partsegcore-compiled-backend/badge/?version=stable)](https://partsegcore-compiled-backend.readthedocs.io/en/stable/)
9
+ [![Publication DOI](https://img.shields.io/badge/Publication%20DOI-10.1186%2Fs12859--021--03984--1-blue)](https://doi.org/10.1186/s12859-021-03984-1)
10
+
11
+ This is a package with all cython/c++ backend for ParSeg
12
+
13
+ Current release extracted from PartSegCore module to avoid building multiple wheels
14
+ for the main package and speedup tests.
15
+
16
+ This package requires `libomp` for build.
17
+ On linux it can be installed with `apt install libomp-dev` or `yum install libomp-devel`.
18
+ On macOS it can be installed with `brew install libomp`.
19
+
20
+ As `clang` version created on macOS do not have native openmp `brew` do
21
+ not set `libomp` as default visible.
22
+ If you install `libomp` with `brew` and want to build package
23
+ from source you need to set `OMP` variable to `libomp` location.
24
+
25
+ For example:
26
+
27
+ ```bash
28
+ export OMP="$(brew --prefix libomp)"
29
+ pip install .
30
+ ```
31
+
32
+ As currently there is no wheel for macOS ARM64
33
+ it is required to build package from source.
34
+
35
+ ## Cite as
36
+
37
+ Bokota, G., Sroka, J., Basu, S. et al. PartSeg: a tool for quantitative feature extraction
38
+ from 3D microscopy images for dummies. BMC Bioinformatics 22, 72 (2021).
39
+ [https://doi.org/10.1186/s12859-021-03984-1](https://doi.org/10.1186/s12859-021-03984-1)
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env bash
2
+ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
3
+ build_dir=${DIR}/libs_build
4
+
5
+ git clone --depth 1 --branch llvmorg-11.1.0 https://github.com/llvm/llvm-project
6
+ pushd llvm-project/openmp
7
+ mkdir build
8
+ cd build
9
+ cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ..
10
+ make
11
+ make install
12
+
13
+ popd
14
+ rm -rf llvm-project
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = .
9
+ BUILDDIR = _build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,5 @@
1
+ PartSegCore_compiled_backend.calc_bounds
2
+ ========================================
3
+
4
+ .. automodule:: PartSegCore_compiled_backend.calc_bounds
5
+ :members:
@@ -0,0 +1,52 @@
1
+ #
2
+ # This file only contains a selection of the most common options. For a full
3
+ # list see the documentation:
4
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html
5
+
6
+ # -- Path setup --------------------------------------------------------------
7
+
8
+ # If extensions (or modules to document with autodoc) are in another directory,
9
+ # add these directories to sys.path here. If the directory is relative to the
10
+ # documentation root, use os.path.abspath to make it absolute, like shown here.
11
+ #
12
+ # import os
13
+ # import sys
14
+ # sys.path.insert(0, os.path.abspath('.'))
15
+
16
+ import PartSegCore_compiled_backend
17
+
18
+ # -- Project information -----------------------------------------------------
19
+
20
+ project = 'PartSegCore-compiled-backend'
21
+ copyright = '2024, Grzegorz Bokota'
22
+ author = 'Grzegorz Bokota'
23
+ release = PartSegCore_compiled_backend.__version__
24
+
25
+
26
+ # -- General configuration ---------------------------------------------------
27
+
28
+ # Add any Sphinx extension module names here, as strings. They can be
29
+ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
30
+ # ones.
31
+ extensions = ['sphinx.ext.autodoc', 'sphinx.ext.napoleon']
32
+
33
+ # Add any paths that contain templates here, relative to this directory.
34
+ templates_path = ['_templates']
35
+
36
+ # List of patterns, relative to source directory, that match files and
37
+ # directories to ignore when looking for source files.
38
+ # This pattern also affects html_static_path and html_extra_path.
39
+ exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
40
+
41
+
42
+ # -- Options for HTML output -------------------------------------------------
43
+
44
+ # The theme to use for HTML and HTML Help pages. See the documentation for
45
+ # a list of builtin themes.
46
+ #
47
+ html_theme = 'nature'
48
+
49
+ # Add any paths that contain custom static files (such as style sheets) here,
50
+ # relative to this directory. They are copied after the builtin static files,
51
+ # so a file named "default.css" will overwrite the builtin "default.css".
52
+ html_static_path = ['_static']
@@ -0,0 +1,5 @@
1
+ PartSegCore_compiled_backend.fast_unique
2
+ ========================================
3
+
4
+ .. automodule:: PartSegCore_compiled_backend.fast_unique
5
+ :members:
@@ -0,0 +1,34 @@
1
+ .. PartSegCore-compiled-backend documentation master file, created by
2
+ sphinx-quickstart on Sat Jan 20 15:05:13 2024.
3
+ You can adapt this file completely to your liking, but it should at least
4
+ contain the root ``toctree`` directive.
5
+
6
+ Welcome to PartSegCore-compiled-backend's documentation!
7
+ ========================================================
8
+
9
+ The PartSegCore-compiled-backend was created as package for PartSeg project.
10
+ It contains parts of code that needs to be compiled. It was created to simplify
11
+ maintenance of PartSeg project. But maybe you could find here useful functions.
12
+
13
+ .. toctree::
14
+ :maxdepth: 2
15
+ :caption: Contents:
16
+
17
+ calc_bounds
18
+ fast_unique
19
+ napari_mapping
20
+ sprawl_utils
21
+
22
+
23
+
24
+ Indices and tables
25
+ ==================
26
+
27
+ * :ref:`genindex`
28
+ * :ref:`modindex`
29
+ * :ref:`search`
30
+
31
+ Cite as
32
+ =======
33
+
34
+ Bokota, G., Sroka, J., Basu, S. et al. PartSeg: a tool for quantitative feature extraction from 3D microscopy images for dummies. BMC Bioinformatics 22, 72 (2021). https://doi.org/10.1186/s12859-021-03984-1
@@ -0,0 +1,35 @@
1
+ @ECHO OFF
2
+
3
+ pushd %~dp0
4
+
5
+ REM Command file for Sphinx documentation
6
+
7
+ if "%SPHINXBUILD%" == "" (
8
+ set SPHINXBUILD=sphinx-build
9
+ )
10
+ set SOURCEDIR=.
11
+ set BUILDDIR=_build
12
+
13
+ %SPHINXBUILD% >NUL 2>NUL
14
+ if errorlevel 9009 (
15
+ echo.
16
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
17
+ echo.installed, then set the SPHINXBUILD environment variable to point
18
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
19
+ echo.may add the Sphinx directory to PATH.
20
+ echo.
21
+ echo.If you don't have Sphinx installed, grab it from
22
+ echo.https://www.sphinx-doc.org/
23
+ exit /b 1
24
+ )
25
+
26
+ if "%1" == "" goto help
27
+
28
+ %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
29
+ goto end
30
+
31
+ :help
32
+ %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
33
+
34
+ :end
35
+ popd
@@ -0,0 +1,5 @@
1
+ PartSegCore_compiled_backend.napari_mapping
2
+ ===========================================
3
+
4
+ .. automodule:: PartSegCore_compiled_backend.napari_mapping
5
+ :members:
@@ -0,0 +1,5 @@
1
+ PartSegCore_compiled_backend.sprawl_utils.find_split
2
+ ====================================================
3
+
4
+ .. automodule:: PartSegCore_compiled_backend.sprawl_utils.find_split
5
+ :members:
@@ -0,0 +1,153 @@
1
+ import numpy as np
2
+ from typing import Sequence, Optional, Union, Tuple, Callable
3
+ import itertools
4
+ from skimage import morphology
5
+
6
+
7
+ def _generate_ball(radius: int, ndim: int) -> np.ndarray:
8
+ """Generate a ball of given radius and dimension.
9
+
10
+ Parameters
11
+ ----------
12
+ radius : int
13
+ Radius of the ball.
14
+ ndim : int
15
+ Dimension of the ball.
16
+
17
+ Returns
18
+ -------
19
+ ball : ndarray of uint8
20
+ Binary array of the hyper ball.
21
+ """
22
+
23
+ if ndim == 2:
24
+ return morphology.disk(radius)
25
+ if ndim == 3:
26
+ return morphology.ball(radius)
27
+ shape = (2 * radius + 1,) * ndim
28
+ radius_sq = radius**2
29
+ coords = np.indices(shape) - radius
30
+ return (np.sum(coords**2, axis=0) <= radius_sq).astype(np.uint8)
31
+
32
+
33
+ def _generate_density(radius: int, ndim: int) -> np.ndarray:
34
+ """Generate gaussian density of given radius and dimension."""
35
+ shape = (2 * radius + 1,) * ndim
36
+ coords = np.indices(shape) - radius
37
+ dist = np.sqrt(np.sum(coords**2 / ((radius / 4) ** 2), axis=0))
38
+ res = np.exp(-dist)
39
+ res[res < 0.02] = 0
40
+ return res
41
+
42
+
43
+ def _structure_at_coordinates(
44
+ shape: Tuple[int],
45
+ coordinates: np.ndarray,
46
+ structure: np.ndarray,
47
+ *,
48
+ multipliers: Sequence = itertools.repeat(1),
49
+ dtype=None,
50
+ reduce_fn: Callable[[np.ndarray, np.ndarray, Optional[np.ndarray]], np.ndarray],
51
+ ):
52
+ """Update data with structure at given coordinates.
53
+
54
+ Parameters
55
+ ----------
56
+ coordinates : ndarray
57
+ Coordinates of the points. The structures will be added at these
58
+ points (center).
59
+ structure : ndarray
60
+ Array with encoded structure. For example, ball (boolean) or density
61
+ (0,1) float.
62
+ multipliers : ndarray
63
+ These values are multiplied by the values in the structure before
64
+ updating the array. Can be used to generate different labels, or to
65
+ vary the intensity of floating point gaussian densities.
66
+ reduce_fn : function
67
+ Function with which to update the array at a particular position. It
68
+ should take two arrays as input and an optional output array.
69
+ """
70
+ radius = (structure.shape[0] - 1) // 2
71
+ data = np.zeros(shape, dtype=dtype)
72
+
73
+ for point, value in zip(coordinates, multipliers):
74
+ slice_im, slice_ball = _get_slices_at(shape, point, radius)
75
+ reduce_fn(data[slice_im], value * structure[slice_ball], out=data[slice_im])
76
+ return data
77
+
78
+
79
+ def _get_slices_at(shape, point, radius):
80
+ slice_im = []
81
+ slice_ball = []
82
+ for i, p in enumerate(point):
83
+ slice_im.append(slice(max(0, p - radius), min(shape[i], p + radius + 1)))
84
+ ball_start = max(0, radius - p)
85
+ ball_stop = slice_im[-1].stop - slice_im[-1].start + ball_start
86
+ slice_ball.append(slice(ball_start, ball_stop))
87
+ return tuple(slice_im), tuple(slice_ball)
88
+
89
+
90
+ def _update_data_with_mask(data, struct, out=None):
91
+ """Update ``data`` with ``struct`` where ``struct`` is nonzero."""
92
+ # these branches are needed because np.where does not support
93
+ # an out= keyword argument
94
+ if out is None:
95
+ return np.where(struct, struct, data)
96
+ else: # noqa: RET505
97
+ nz = struct != 0
98
+ out[nz] = struct[nz]
99
+ return out
100
+
101
+
102
+ def _smallest_dtype(n: int) -> np.dtype:
103
+ """Find the smallest dtype that can hold n values."""
104
+ for dtype in [np.uint8, np.uint16, np.uint32, np.uint64]:
105
+ if np.iinfo(dtype).max >= n:
106
+ return dtype
107
+ break
108
+ else:
109
+ raise ValueError(f'{n=} is too large for any dtype.')
110
+
111
+
112
+ def labeled_particles(
113
+ shape: Sequence[int],
114
+ dtype: Optional[np.dtype] = None,
115
+ n: int = 144,
116
+ seed: Optional[int] = None,
117
+ return_density: bool = False,
118
+ ) -> Union[np.ndarray, Tuple[np.ndarray, np.ndarray, np.ndarray]]:
119
+ """Generate labeled blobs of given shape and dtype.
120
+
121
+ Parameters
122
+ ----------
123
+ shape : Sequence[int]
124
+ Shape of the resulting array.
125
+ dtype : Optional[np.dtype]
126
+ Dtype of the resulting array.
127
+ n : int
128
+ Number of blobs to generate.
129
+ seed : Optional[int]
130
+ Seed for the random number generator.
131
+ return_density : bool
132
+ Whether to return the density array and center coordinates.
133
+ """
134
+ if dtype is None:
135
+ dtype = _smallest_dtype(n)
136
+ rng = np.random.default_rng(seed)
137
+ ndim = len(shape)
138
+ points = rng.integers(shape, size=(n, ndim))
139
+ values = rng.integers(np.iinfo(dtype).min, np.iinfo(dtype).max, size=n, dtype=dtype)
140
+ sigma = int(max(shape) / (4.0 * n ** (1 / ndim)))
141
+ ball = _generate_ball(sigma, ndim)
142
+
143
+ labels = _structure_at_coordinates(
144
+ shape, points, ball, multipliers=values, reduce_fn=_update_data_with_mask, dtype=dtype
145
+ )
146
+
147
+ if return_density:
148
+ dens = _generate_density(sigma * 2, ndim)
149
+ densities = _structure_at_coordinates(shape, points, dens, reduce_fn=np.maximum, dtype=np.float32)
150
+
151
+ return labels, densities, points
152
+ else: # noqa: RET505
153
+ return labels