plexora 0.0.23__tar.gz → 0.0.27__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 (1267) hide show
  1. plexora-0.0.27/MANIFEST.in +25 -0
  2. plexora-0.0.27/PKG-INFO +209 -0
  3. plexora-0.0.27/README.md +144 -0
  4. plexora-0.0.27/plexora/__init__.py +495 -0
  5. plexora-0.0.27/plexora/_lifetime.py +266 -0
  6. plexora-0.0.27/plexora/_resources.py +387 -0
  7. plexora-0.0.27/plexora/_subprocess.py +50 -0
  8. plexora-0.0.27/plexora/agent/__init__.py +28 -0
  9. plexora-0.0.27/plexora/agent/artifacts.py +170 -0
  10. plexora-0.0.27/plexora/agent/attach.py +160 -0
  11. plexora-0.0.27/plexora/agent/audit.py +110 -0
  12. plexora-0.0.27/plexora/agent/cell_exclusions.py +383 -0
  13. plexora-0.0.27/plexora/agent/cell_explain.py +170 -0
  14. plexora-0.0.27/plexora/agent/cell_gallery.py +281 -0
  15. plexora-0.0.27/plexora/agent/core/__init__.py +23 -0
  16. plexora-0.0.27/plexora/agent/core/cells.py +113 -0
  17. plexora-0.0.27/plexora/agent/core/image.py +55 -0
  18. plexora-0.0.27/plexora/agent/core/jobs.py +97 -0
  19. plexora-0.0.27/plexora/agent/core/operations.py +211 -0
  20. plexora-0.0.27/plexora/agent/core/project.py +479 -0
  21. plexora-0.0.27/plexora/agent/core/scene.py +188 -0
  22. plexora-0.0.27/plexora/agent/core/table.py +129 -0
  23. plexora-0.0.27/plexora/agent/core/viewer.py +452 -0
  24. plexora-0.0.27/plexora/agent/core/visual.py +86 -0
  25. plexora-0.0.27/plexora/agent/errors.py +137 -0
  26. plexora-0.0.27/plexora/agent/evidence/__init__.py +10 -0
  27. plexora-0.0.27/plexora/agent/evidence/calibration.py +449 -0
  28. plexora-0.0.27/plexora/agent/evidence/cell_window.py +178 -0
  29. plexora-0.0.27/plexora/agent/evidence/collage.py +467 -0
  30. plexora-0.0.27/plexora/agent/evidence/crops.py +230 -0
  31. plexora-0.0.27/plexora/agent/evidence/density_plot.py +140 -0
  32. plexora-0.0.27/plexora/agent/evidence/image_qc.py +146 -0
  33. plexora-0.0.27/plexora/agent/evidence/sheet_layout.py +149 -0
  34. plexora-0.0.27/plexora/agent/expression.py +137 -0
  35. plexora-0.0.27/plexora/agent/gate_panel.py +180 -0
  36. plexora-0.0.27/plexora/agent/gate_rule.py +19 -0
  37. plexora-0.0.27/plexora/agent/gate_sampling.py +303 -0
  38. plexora-0.0.27/plexora/agent/jobs.py +333 -0
  39. plexora-0.0.27/plexora/agent/limits.py +49 -0
  40. plexora-0.0.27/plexora/agent/plots.py +184 -0
  41. plexora-0.0.27/plexora/agent/policy.py +336 -0
  42. plexora-0.0.27/plexora/agent/presets.py +158 -0
  43. plexora-0.0.27/plexora/agent/receipts.py +76 -0
  44. plexora-0.0.27/plexora/agent/registry.py +400 -0
  45. plexora-0.0.27/plexora/agent/render.py +783 -0
  46. plexora-0.0.27/plexora/agent/render_spec.py +211 -0
  47. plexora-0.0.27/plexora/agent/report.py +283 -0
  48. plexora-0.0.27/plexora/agent/revision.py +78 -0
  49. plexora-0.0.27/plexora/agent/scene_models.py +134 -0
  50. plexora-0.0.27/plexora/agent/schemas.py +124 -0
  51. plexora-0.0.27/plexora/agent/session.py +232 -0
  52. plexora-0.0.27/plexora/agent/sessions/__init__.py +16 -0
  53. plexora-0.0.27/plexora/agent/sessions/budget.py +79 -0
  54. plexora-0.0.27/plexora/agent/sessions/control.py +141 -0
  55. plexora-0.0.27/plexora/agent/sessions/engine.py +785 -0
  56. plexora-0.0.27/plexora/agent/sessions/events.py +52 -0
  57. plexora-0.0.27/plexora/agent/sessions/memo.py +93 -0
  58. plexora-0.0.27/plexora/agent/sessions/mirror.py +137 -0
  59. plexora-0.0.27/plexora/agent/sessions/store.py +269 -0
  60. plexora-0.0.27/plexora/agent/sessions/tools.py +767 -0
  61. plexora-0.0.27/plexora/agent/tasks.py +106 -0
  62. plexora-0.0.27/plexora/agent/tokens.py +166 -0
  63. plexora-0.0.27/plexora/agent/viewer.py +186 -0
  64. plexora-0.0.27/plexora/ai/__init__.py +10 -0
  65. plexora-0.0.27/plexora/ai/audit.py +64 -0
  66. plexora-0.0.27/plexora/ai/bench.py +638 -0
  67. plexora-0.0.27/plexora/ai/bench_data.py +185 -0
  68. plexora-0.0.27/plexora/ai/bench_qc.py +722 -0
  69. plexora-0.0.27/plexora/ai/context.py +421 -0
  70. plexora-0.0.27/plexora/ai/delegation.py +277 -0
  71. plexora-0.0.27/plexora/ai/harness/__init__.py +34 -0
  72. plexora-0.0.27/plexora/ai/harness/approvals.py +143 -0
  73. plexora-0.0.27/plexora/ai/harness/cache_plan.py +112 -0
  74. plexora-0.0.27/plexora/ai/harness/capabilities.py +453 -0
  75. plexora-0.0.27/plexora/ai/harness/chat_capabilities.py +145 -0
  76. plexora-0.0.27/plexora/ai/harness/cli.py +336 -0
  77. plexora-0.0.27/plexora/ai/harness/conversations.py +324 -0
  78. plexora-0.0.27/plexora/ai/harness/decision.py +1007 -0
  79. plexora-0.0.27/plexora/ai/harness/gateway.py +328 -0
  80. plexora-0.0.27/plexora/ai/harness/offload.py +100 -0
  81. plexora-0.0.27/plexora/ai/harness/orchestrator.py +258 -0
  82. plexora-0.0.27/plexora/ai/harness/prefix.py +158 -0
  83. plexora-0.0.27/plexora/ai/harness/route_bench.py +165 -0
  84. plexora-0.0.27/plexora/ai/harness/runner.py +771 -0
  85. plexora-0.0.27/plexora/ai/harness/schema.py +286 -0
  86. plexora-0.0.27/plexora/ai/harness/toolcache.py +169 -0
  87. plexora-0.0.27/plexora/ai/harness/tools.py +484 -0
  88. plexora-0.0.27/plexora/ai/harness/trace.py +199 -0
  89. plexora-0.0.27/plexora/ai/harness/wire.py +158 -0
  90. plexora-0.0.27/plexora/ai/knowledge/biology.yaml +125 -0
  91. plexora-0.0.27/plexora/ai/knowledge/markers.yaml +512 -0
  92. plexora-0.0.27/plexora/ai/models_config.py +207 -0
  93. plexora-0.0.27/plexora/ai/qc_scenes.py +252 -0
  94. plexora-0.0.27/plexora/ai/setup.py +425 -0
  95. plexora-0.0.27/plexora/ai/skill_manifest.yaml +122 -0
  96. plexora-0.0.27/plexora/ai/skills/dataset-triage/SKILL.md +81 -0
  97. plexora-0.0.27/plexora/ai/skills/diagnose-marker/SKILL.md +102 -0
  98. plexora-0.0.27/plexora/ai/skills/gate-dataset/SKILL.md +117 -0
  99. plexora-0.0.27/plexora/ai/skills/gate-image/SKILL.md +208 -0
  100. plexora-0.0.27/plexora/ai/skills/gate-packets/SKILL.md +118 -0
  101. plexora-0.0.27/plexora/ai/skills/marker-qc/SKILL.md +68 -0
  102. plexora-0.0.27/plexora/ai/skills/qc-checks/SKILL.md +141 -0
  103. plexora-0.0.27/plexora/ai/skills/qc-image/SKILL.md +292 -0
  104. plexora-0.0.27/plexora/ai/skills/qc-packets/SKILL.md +74 -0
  105. plexora-0.0.27/plexora/ai/skills/review-gating/SKILL.md +102 -0
  106. plexora-0.0.27/plexora/ai/skills/review-qc/SKILL.md +106 -0
  107. plexora-0.0.27/plexora/ai/skills/visual-gating/SKILL.md +119 -0
  108. plexora-0.0.27/plexora/ai/skills/visual-inspection/SKILL.md +80 -0
  109. plexora-0.0.27/plexora/ai/skills.py +290 -0
  110. plexora-0.0.27/plexora/ai/tasks.py +111 -0
  111. plexora-0.0.27/plexora/ai/tasks.yaml +152 -0
  112. plexora-0.0.27/plexora/ai/vocabulary.py +192 -0
  113. plexora-0.0.27/plexora/api/__init__.py +203 -0
  114. plexora-0.0.27/plexora/api/dataset.py +1063 -0
  115. plexora-0.0.27/plexora/api/features.py +153 -0
  116. plexora-0.0.27/plexora/api/http.py +40 -0
  117. plexora-0.0.27/plexora/api/plugin.py +931 -0
  118. plexora-0.0.27/plexora/api/store.py +309 -0
  119. plexora-0.0.27/plexora/cli.py +3275 -0
  120. plexora-0.0.27/plexora/client/dist/vendor_bundle.js +2 -0
  121. plexora-0.0.27/plexora/client/external/openseadragon-bin-2.4.0/canvas-overlay-hd.js +154 -0
  122. plexora-0.0.27/plexora/client/external/thinking-orbs-0.3.2/LICENSE +21 -0
  123. plexora-0.0.27/plexora/client/external/thinking-orbs-0.3.2/README-plexora.txt +21 -0
  124. plexora-0.0.27/plexora/client/external/thinking-orbs-0.3.2/orbs.js +873 -0
  125. plexora-0.0.27/plexora/client/src/css/agentPanel.css +1129 -0
  126. plexora-0.0.27/plexora/client/src/css/chatPanel.css +677 -0
  127. plexora-0.0.27/plexora/client/src/css/main.css +9236 -0
  128. plexora-0.0.27/plexora/client/src/css/openProject.css +668 -0
  129. plexora-0.0.27/plexora/client/src/css/quickView.css +456 -0
  130. plexora-0.0.27/plexora/client/src/css/settings.css +1499 -0
  131. plexora-0.0.27/plexora/client/src/css/viewer.css +3402 -0
  132. plexora-0.0.27/plexora/client/src/js/main.js +1915 -0
  133. plexora-0.0.27/plexora/client/src/js/pluginRegistry.js +158 -0
  134. plexora-0.0.27/plexora/client/src/js/services/agentBridge.js +1869 -0
  135. plexora-0.0.27/plexora/client/src/js/services/appRouter.js +475 -0
  136. plexora-0.0.27/plexora/client/src/js/services/appStatus.js +323 -0
  137. plexora-0.0.27/plexora/client/src/js/services/browsePicker.js +555 -0
  138. plexora-0.0.27/plexora/client/src/js/services/connectionModal.js +3170 -0
  139. plexora-0.0.27/plexora/client/src/js/services/dataLayer.js +452 -0
  140. plexora-0.0.27/plexora/client/src/js/services/desktopBridge.js +385 -0
  141. plexora-0.0.27/plexora/client/src/js/services/errors.js +136 -0
  142. plexora-0.0.27/plexora/client/src/js/services/fileLocation.js +721 -0
  143. plexora-0.0.27/plexora/client/src/js/services/numericData.js +173 -0
  144. plexora-0.0.27/plexora/client/src/js/services/orbDriver.js +242 -0
  145. plexora-0.0.27/plexora/client/src/js/services/paidFeature.js +149 -0
  146. plexora-0.0.27/plexora/client/src/js/services/performanceTelemetry.js +266 -0
  147. plexora-0.0.27/plexora/client/src/js/services/pointerDrag.js +145 -0
  148. plexora-0.0.27/plexora/client/src/js/services/resourceRouting.js +269 -0
  149. plexora-0.0.27/plexora/client/src/js/services/resourceStatus.js +577 -0
  150. plexora-0.0.27/plexora/client/src/js/services/sessionExpiry.js +366 -0
  151. plexora-0.0.27/plexora/client/src/js/services/telemetry.js +345 -0
  152. plexora-0.0.27/plexora/client/src/js/services/toast.js +222 -0
  153. plexora-0.0.27/plexora/client/src/js/services/viewTransform.js +360 -0
  154. plexora-0.0.27/plexora/client/src/js/services/viewerScene.js +334 -0
  155. plexora-0.0.27/plexora/client/src/js/views/agentPanel.js +1837 -0
  156. plexora-0.0.27/plexora/client/src/js/views/cardList.js +265 -0
  157. plexora-0.0.27/plexora/client/src/js/views/chatPanel.js +582 -0
  158. plexora-0.0.27/plexora/client/src/js/views/columnClassifier.js +147 -0
  159. plexora-0.0.27/plexora/client/src/js/views/confirmDialog.js +214 -0
  160. plexora-0.0.27/plexora/client/src/js/views/datasetNav.js +308 -0
  161. plexora-0.0.27/plexora/client/src/js/views/datasetStrip.js +368 -0
  162. plexora-0.0.27/plexora/client/src/js/views/geneGroupModal.js +678 -0
  163. plexora-0.0.27/plexora/client/src/js/views/geneList.js +573 -0
  164. plexora-0.0.27/plexora/client/src/js/views/glInit.js +280 -0
  165. plexora-0.0.27/plexora/client/src/js/views/gradientRange.js +542 -0
  166. plexora-0.0.27/plexora/client/src/js/views/helpMenu.js +247 -0
  167. plexora-0.0.27/plexora/client/src/js/views/imageViewer.js +3486 -0
  168. plexora-0.0.27/plexora/client/src/js/views/importHelp.js +581 -0
  169. plexora-0.0.27/plexora/client/src/js/views/importSample.js +2268 -0
  170. plexora-0.0.27/plexora/client/src/js/views/labelGpu.js +465 -0
  171. plexora-0.0.27/plexora/client/src/js/views/labelTile.js +258 -0
  172. plexora-0.0.27/plexora/client/src/js/views/layerChannelPanel.js +400 -0
  173. plexora-0.0.27/plexora/client/src/js/views/layerManager.js +1875 -0
  174. plexora-0.0.27/plexora/client/src/js/views/loadProgress.js +184 -0
  175. plexora-0.0.27/plexora/client/src/js/views/locators.js +76 -0
  176. plexora-0.0.27/plexora/client/src/js/views/miniMap.js +938 -0
  177. plexora-0.0.27/plexora/client/src/js/views/navbarControls.js +89 -0
  178. plexora-0.0.27/plexora/client/src/js/views/openProjectPage.js +961 -0
  179. plexora-0.0.27/plexora/client/src/js/views/pluginHelp.js +134 -0
  180. plexora-0.0.27/plexora/client/src/js/views/popoverMenu.js +205 -0
  181. plexora-0.0.27/plexora/client/src/js/views/projectEdit.js +681 -0
  182. plexora-0.0.27/plexora/client/src/js/views/quickViewLanding.js +391 -0
  183. plexora-0.0.27/plexora/client/src/js/views/rgbImageViewer.js +145 -0
  184. plexora-0.0.27/plexora/client/src/js/views/searchableSelect.js +459 -0
  185. plexora-0.0.27/plexora/client/src/js/views/segmentationWait.js +321 -0
  186. plexora-0.0.27/plexora/client/src/js/views/settingsPage.js +2349 -0
  187. plexora-0.0.27/plexora/client/src/js/views/slider.js +991 -0
  188. plexora-0.0.27/plexora/client/src/js/views/tileColorize.js +369 -0
  189. plexora-0.0.27/plexora/client/src/js/views/tileDecode.js +397 -0
  190. plexora-0.0.27/plexora/client/src/js/views/toolLoader.js +1374 -0
  191. plexora-0.0.27/plexora/client/src/js/views/updateDialog.js +717 -0
  192. plexora-0.0.27/plexora/client/src/js/views/viewTransformTools.js +157 -0
  193. plexora-0.0.27/plexora/client/src/js/views/viewerControls.js +1073 -0
  194. plexora-0.0.27/plexora/client/src/js/views/viewerErrorState.js +206 -0
  195. plexora-0.0.27/plexora/client/src/js/views/viewerManager.js +2398 -0
  196. plexora-0.0.27/plexora/client/src/js/views/viewerSidebar.js +1871 -0
  197. plexora-0.0.27/plexora/client/src/shaders/label.frag.glsl +89 -0
  198. plexora-0.0.27/plexora/client/templates/base.html +518 -0
  199. plexora-0.0.27/plexora/client/templates/index.html +660 -0
  200. plexora-0.0.27/plexora/client/templates/open_project.html +118 -0
  201. plexora-0.0.27/plexora/client/templates/project_edit.html +404 -0
  202. plexora-0.0.27/plexora/client/templates/settings.html +745 -0
  203. plexora-0.0.27/plexora/client/templates/tools/rotate_panel.html +48 -0
  204. plexora-0.0.27/plexora/connect.py +3184 -0
  205. plexora-0.0.27/plexora/datasets.py +1580 -0
  206. plexora-0.0.27/plexora/datasource.py +1809 -0
  207. plexora-0.0.27/plexora/gcloud.py +2487 -0
  208. plexora-0.0.27/plexora/jupyter.py +1234 -0
  209. plexora-0.0.27/plexora/licensing/__init__.py +62 -0
  210. plexora-0.0.27/plexora/licensing/certificate.py +159 -0
  211. plexora-0.0.27/plexora/licensing/cli.py +430 -0
  212. plexora-0.0.27/plexora/licensing/client.py +236 -0
  213. plexora-0.0.27/plexora/licensing/delegation.py +142 -0
  214. plexora-0.0.27/plexora/licensing/entitlements.py +79 -0
  215. plexora-0.0.27/plexora/licensing/environment.py +293 -0
  216. plexora-0.0.27/plexora/licensing/errors.py +70 -0
  217. plexora-0.0.27/plexora/licensing/guards.py +164 -0
  218. plexora-0.0.27/plexora/licensing/keys.py +37 -0
  219. plexora-0.0.27/plexora/licensing/manifest.py +109 -0
  220. plexora-0.0.27/plexora/licensing/models.py +199 -0
  221. plexora-0.0.27/plexora/licensing/state.py +515 -0
  222. plexora-0.0.27/plexora/licensing/store.py +276 -0
  223. plexora-0.0.27/plexora/licensing/tokens.py +155 -0
  224. plexora-0.0.27/plexora/links.py +27 -0
  225. plexora-0.0.27/plexora/mcp/__init__.py +31 -0
  226. plexora-0.0.27/plexora/mcp/auth.py +63 -0
  227. plexora-0.0.27/plexora/mcp/profiles.py +85 -0
  228. plexora-0.0.27/plexora/mcp/prompts.py +127 -0
  229. plexora-0.0.27/plexora/mcp/resources.py +135 -0
  230. plexora-0.0.27/plexora/mcp/resources_gating.py +62 -0
  231. plexora-0.0.27/plexora/mcp/resources_scene.py +51 -0
  232. plexora-0.0.27/plexora/mcp/resources_visual.py +18 -0
  233. plexora-0.0.27/plexora/mcp/serialize.py +72 -0
  234. plexora-0.0.27/plexora/mcp/server.py +468 -0
  235. plexora-0.0.27/plexora/mcp/smoke.py +52 -0
  236. plexora-0.0.27/plexora/mcp/tools.py +170 -0
  237. plexora-0.0.27/plexora/memory.py +911 -0
  238. plexora-0.0.27/plexora/nodes.py +1230 -0
  239. plexora-0.0.27/plexora/paths.py +876 -0
  240. plexora-0.0.27/plexora/plugins/cell_explorer/__init__.py +105 -0
  241. plexora-0.0.27/plexora/plugins/cell_explorer/static/cellExplorerSidebarController.js +883 -0
  242. plexora-0.0.27/plexora/plugins/figure_builder/__init__.py +172 -0
  243. plexora-0.0.27/plexora/plugins/figure_builder/server/compose.py +829 -0
  244. plexora-0.0.27/plexora/plugins/figure_builder/server/export_jobs.py +167 -0
  245. plexora-0.0.27/plexora/plugins/figure_builder/server/provenance.py +185 -0
  246. plexora-0.0.27/plexora/plugins/figure_builder/server/render.py +297 -0
  247. plexora-0.0.27/plexora/plugins/figure_builder/server/schema.py +1454 -0
  248. plexora-0.0.27/plexora/plugins/figure_builder/static/figureCanvas.js +3526 -0
  249. plexora-0.0.27/plexora/plugins/figure_builder/static/figureCaptureBoxes.js +381 -0
  250. plexora-0.0.27/plexora/plugins/figure_builder/static/figureCaptureDock.js +578 -0
  251. plexora-0.0.27/plexora/plugins/figure_builder/static/figureCaptureTool.js +1165 -0
  252. plexora-0.0.27/plexora/plugins/figure_builder/static/figureContextBar.js +1274 -0
  253. plexora-0.0.27/plexora/plugins/figure_builder/static/figureExportUi.js +181 -0
  254. plexora-0.0.27/plexora/plugins/figure_builder/static/figureImagePanel.js +1561 -0
  255. plexora-0.0.27/plexora/plugins/figure_builder/static/figureLibrary.js +255 -0
  256. plexora-0.0.27/plexora/plugins/figure_builder/static/figurePanelCompositor.js +175 -0
  257. plexora-0.0.27/plexora/plugins/figure_builder/static/figureQuickEdit.js +1004 -0
  258. plexora-0.0.27/plexora/plugins/figure_builder/static/figureSceneSnapshot.js +376 -0
  259. plexora-0.0.27/plexora/plugins/figure_builder/static/figureSchema.js +567 -0
  260. plexora-0.0.27/plexora/plugins/figure_builder/static/figureSidebarController.js +1260 -0
  261. plexora-0.0.27/plexora/plugins/figure_builder/static/figureWorkspace.js +2737 -0
  262. plexora-0.0.27/plexora/plugins/figure_builder/static/figure_builder.css +5990 -0
  263. plexora-0.0.27/plexora/plugins/figure_builder/templates/figure_builder/workspace.html +27 -0
  264. plexora-0.0.27/plexora/plugins/gating/__init__.py +92 -0
  265. plexora-0.0.27/plexora/plugins/gating/capabilities.py +697 -0
  266. plexora-0.0.27/plexora/plugins/gating/capabilities_autogate.py +806 -0
  267. plexora-0.0.27/plexora/plugins/gating/capabilities_session.py +1487 -0
  268. plexora-0.0.27/plexora/plugins/gating/server/anndata_gates.py +411 -0
  269. plexora-0.0.27/plexora/plugins/gating/server/autogate/__init__.py +11 -0
  270. plexora-0.0.27/plexora/plugins/gating/server/autogate/answers.py +223 -0
  271. plexora-0.0.27/plexora/plugins/gating/server/autogate/biology.py +262 -0
  272. plexora-0.0.27/plexora/plugins/gating/server/autogate/bivariate.py +272 -0
  273. plexora-0.0.27/plexora/plugins/gating/server/autogate/bulk.py +257 -0
  274. plexora-0.0.27/plexora/plugins/gating/server/autogate/candidates.py +263 -0
  275. plexora-0.0.27/plexora/plugins/gating/server/autogate/cells.py +168 -0
  276. plexora-0.0.27/plexora/plugins/gating/server/autogate/context.py +319 -0
  277. plexora-0.0.27/plexora/plugins/gating/server/autogate/engine.py +1320 -0
  278. plexora-0.0.27/plexora/plugins/gating/server/autogate/events.py +37 -0
  279. plexora-0.0.27/plexora/plugins/gating/server/autogate/hierarchy.py +446 -0
  280. plexora-0.0.27/plexora/plugins/gating/server/autogate/kernels.py +176 -0
  281. plexora-0.0.27/plexora/plugins/gating/server/autogate/lattice.py +241 -0
  282. plexora-0.0.27/plexora/plugins/gating/server/autogate/memo.py +42 -0
  283. plexora-0.0.27/plexora/plugins/gating/server/autogate/mirror_script.py +245 -0
  284. plexora-0.0.27/plexora/plugins/gating/server/autogate/packets.py +1316 -0
  285. plexora-0.0.27/plexora/plugins/gating/server/autogate/pixel_estimate.py +232 -0
  286. plexora-0.0.27/plexora/plugins/gating/server/autogate/profile.py +687 -0
  287. plexora-0.0.27/plexora/plugins/gating/server/autogate/provenance.py +15 -0
  288. plexora-0.0.27/plexora/plugins/gating/server/autogate/qc_cells.py +221 -0
  289. plexora-0.0.27/plexora/plugins/gating/server/autogate/reference.py +162 -0
  290. plexora-0.0.27/plexora/plugins/gating/server/autogate/regression.py +152 -0
  291. plexora-0.0.27/plexora/plugins/gating/server/autogate/report.py +520 -0
  292. plexora-0.0.27/plexora/plugins/gating/server/autogate/sampler.py +350 -0
  293. plexora-0.0.27/plexora/plugins/gating/server/autogate/schemas.py +252 -0
  294. plexora-0.0.27/plexora/plugins/gating/server/autogate/scoring.py +594 -0
  295. plexora-0.0.27/plexora/plugins/gating/server/autogate/sheet.py +369 -0
  296. plexora-0.0.27/plexora/plugins/gating/server/autogate/tableops.py +192 -0
  297. plexora-0.0.27/plexora/plugins/gating/server/autogate/transfer.py +260 -0
  298. plexora-0.0.27/plexora/plugins/gating/server/autogate/transitions.py +761 -0
  299. plexora-0.0.27/plexora/plugins/gating/server/autogate/views.py +183 -0
  300. plexora-0.0.27/plexora/plugins/gating/server/mixture.py +105 -0
  301. plexora-0.0.27/plexora/plugins/gating/server/model.py +805 -0
  302. plexora-0.0.27/plexora/plugins/gating/server/provenance.py +248 -0
  303. plexora-0.0.27/plexora/plugins/gating/server/routes.py +338 -0
  304. plexora-0.0.27/plexora/plugins/gating/server/tableops.py +142 -0
  305. plexora-0.0.27/plexora/plugins/gating/static/csvGatingList.js +969 -0
  306. plexora-0.0.27/plexora/plugins/gating/static/gating.css +529 -0
  307. plexora-0.0.27/plexora/plugins/gating/static/gatingAgentBridge.js +205 -0
  308. plexora-0.0.27/plexora/plugins/gating/static/gatingApi.js +270 -0
  309. plexora-0.0.27/plexora/plugins/gating/static/gatingSidebarController.js +1614 -0
  310. plexora-0.0.27/plexora/plugins/gating/templates/gating/panel.html +132 -0
  311. plexora-0.0.27/plexora/plugins/qc/__init__.py +85 -0
  312. plexora-0.0.27/plexora/plugins/qc/capabilities.py +1410 -0
  313. plexora-0.0.27/plexora/plugins/qc/capabilities_checks.py +1686 -0
  314. plexora-0.0.27/plexora/plugins/qc/capabilities_session.py +740 -0
  315. plexora-0.0.27/plexora/plugins/qc/mcp.py +102 -0
  316. plexora-0.0.27/plexora/plugins/qc/server/__init__.py +1 -0
  317. plexora-0.0.27/plexora/plugins/qc/server/answers.py +297 -0
  318. plexora-0.0.27/plexora/plugins/qc/server/artifacts.py +2058 -0
  319. plexora-0.0.27/plexora/plugins/qc/server/blur.py +992 -0
  320. plexora-0.0.27/plexora/plugins/qc/server/bulk.py +312 -0
  321. plexora-0.0.27/plexora/plugins/qc/server/candidates.py +399 -0
  322. plexora-0.0.27/plexora/plugins/qc/server/cells/__init__.py +1 -0
  323. plexora-0.0.27/plexora/plugins/qc/server/cells/bulk.py +138 -0
  324. plexora-0.0.27/plexora/plugins/qc/server/cells/calls.py +586 -0
  325. plexora-0.0.27/plexora/plugins/qc/server/cells/modules.py +640 -0
  326. plexora-0.0.27/plexora/plugins/qc/server/cells/packets.py +461 -0
  327. plexora-0.0.27/plexora/plugins/qc/server/check_candidates.py +379 -0
  328. plexora-0.0.27/plexora/plugins/qc/server/checks_bulk.py +348 -0
  329. plexora-0.0.27/plexora/plugins/qc/server/checks_result.py +62 -0
  330. plexora-0.0.27/plexora/plugins/qc/server/class_rules.py +109 -0
  331. plexora-0.0.27/plexora/plugins/qc/server/cycles.py +123 -0
  332. plexora-0.0.27/plexora/plugins/qc/server/detectors/__init__.py +77 -0
  333. plexora-0.0.27/plexora/plugins/qc/server/detectors/base.py +131 -0
  334. plexora-0.0.27/plexora/plugins/qc/server/detectors/classical.py +478 -0
  335. plexora-0.0.27/plexora/plugins/qc/server/engine.py +860 -0
  336. plexora-0.0.27/plexora/plugins/qc/server/events.py +36 -0
  337. plexora-0.0.27/plexora/plugins/qc/server/exclusions.py +239 -0
  338. plexora-0.0.27/plexora/plugins/qc/server/export.py +259 -0
  339. plexora-0.0.27/plexora/plugins/qc/server/finalize.py +132 -0
  340. plexora-0.0.27/plexora/plugins/qc/server/mirror_script.py +235 -0
  341. plexora-0.0.27/plexora/plugins/qc/server/packets.py +829 -0
  342. plexora-0.0.27/plexora/plugins/qc/server/polygons.py +290 -0
  343. plexora-0.0.27/plexora/plugins/qc/server/propagate.py +179 -0
  344. plexora-0.0.27/plexora/plugins/qc/server/provenance.py +609 -0
  345. plexora-0.0.27/plexora/plugins/qc/server/refine.py +1075 -0
  346. plexora-0.0.27/plexora/plugins/qc/server/registration.py +1151 -0
  347. plexora-0.0.27/plexora/plugins/qc/server/report.py +634 -0
  348. plexora-0.0.27/plexora/plugins/qc/server/results.py +388 -0
  349. plexora-0.0.27/plexora/plugins/qc/server/roi_link.py +753 -0
  350. plexora-0.0.27/plexora/plugins/qc/server/routes.py +856 -0
  351. plexora-0.0.27/plexora/plugins/qc/server/scan.py +837 -0
  352. plexora-0.0.27/plexora/plugins/qc/server/schemas.py +910 -0
  353. plexora-0.0.27/plexora/plugins/qc/server/score_fields.py +677 -0
  354. plexora-0.0.27/plexora/plugins/qc/server/score_review.py +275 -0
  355. plexora-0.0.27/plexora/plugins/qc/server/segqc/__init__.py +9 -0
  356. plexora-0.0.27/plexora/plugins/qc/server/segqc/analysis.py +486 -0
  357. plexora-0.0.27/plexora/plugins/qc/server/segqc/kernels.py +129 -0
  358. plexora-0.0.27/plexora/plugins/qc/server/segqc/run.py +1012 -0
  359. plexora-0.0.27/plexora/plugins/qc/server/sheets.py +891 -0
  360. plexora-0.0.27/plexora/plugins/qc/server/source_write.py +424 -0
  361. plexora-0.0.27/plexora/plugins/qc/server/strictness.py +124 -0
  362. plexora-0.0.27/plexora/plugins/qc/server/transitions.py +764 -0
  363. plexora-0.0.27/plexora/plugins/qc/server/viewer_data.py +811 -0
  364. plexora-0.0.27/plexora/plugins/qc/static/qc.css +2445 -0
  365. plexora-0.0.27/plexora/plugins/qc/static/qcAgentBridge.js +109 -0
  366. plexora-0.0.27/plexora/plugins/qc/static/qcApi.js +310 -0
  367. plexora-0.0.27/plexora/plugins/qc/static/qcArtifacts.js +1221 -0
  368. plexora-0.0.27/plexora/plugins/qc/static/qcBlur.js +972 -0
  369. plexora-0.0.27/plexora/plugins/qc/static/qcDraw.js +271 -0
  370. plexora-0.0.27/plexora/plugins/qc/static/qcHover.js +1049 -0
  371. plexora-0.0.27/plexora/plugins/qc/static/qcLayers.js +287 -0
  372. plexora-0.0.27/plexora/plugins/qc/static/qcRegistration.js +1626 -0
  373. plexora-0.0.27/plexora/plugins/qc/static/qcSegmentation.js +1016 -0
  374. plexora-0.0.27/plexora/plugins/qc/static/qcSidebarController.js +2066 -0
  375. plexora-0.0.27/plexora/plugins/qc/static/qcTree.js +456 -0
  376. plexora-0.0.27/plexora/plugins/qc/templates/qc/panel.html +378 -0
  377. plexora-0.0.27/plexora/plugins/roi/__init__.py +113 -0
  378. plexora-0.0.27/plexora/plugins/roi/capabilities.py +208 -0
  379. plexora-0.0.27/plexora/plugins/roi/server/service.py +229 -0
  380. plexora-0.0.27/plexora/plugins/roi/static/roiAgentBridge.js +63 -0
  381. plexora-0.0.27/plexora/plugins/roi/static/roiApi.js +199 -0
  382. plexora-0.0.27/plexora/plugins/roi/static/roiSidebarController.js +1164 -0
  383. plexora-0.0.27/plexora/plugins/roi/static/roiState.js +528 -0
  384. plexora-0.0.27/plexora/plugins/roi/static/roiTools.js +1050 -0
  385. plexora-0.0.27/plexora/plugins/transcripts/__init__.py +99 -0
  386. plexora-0.0.27/plexora/plugins/transcripts/server/routes.py +488 -0
  387. plexora-0.0.27/plexora/plugins/transcripts/static/transcriptLayer.js +1496 -0
  388. plexora-0.0.27/plexora/plugins/transcripts/static/transcriptPoints.js +917 -0
  389. plexora-0.0.27/plexora/plugins/transcripts/static/transcripts.css +318 -0
  390. plexora-0.0.27/plexora/plugins/transcripts/static/transcriptsSidebarController.js +963 -0
  391. plexora-0.0.27/plexora/plugins/transcripts/templates/transcripts/panel.html +236 -0
  392. plexora-0.0.27/plexora/plugins/visium_hd/__init__.py +59 -0
  393. plexora-0.0.27/plexora/plugins/visium_hd/server/routes.py +354 -0
  394. plexora-0.0.27/plexora/plugins/visium_hd/server/spots.py +194 -0
  395. plexora-0.0.27/plexora/plugins/visium_hd/static/binLayer.js +859 -0
  396. plexora-0.0.27/plexora/plugins/visium_hd/static/spotLayer.js +505 -0
  397. plexora-0.0.27/plexora/plugins/visium_hd/static/visiumHdApi.js +132 -0
  398. plexora-0.0.27/plexora/plugins/visium_hd/static/visiumHdSidebarController.js +829 -0
  399. plexora-0.0.27/plexora/plugins/visium_hd/static/visium_hd.css +271 -0
  400. plexora-0.0.27/plexora/plugins/visium_hd/templates/visium_hd/panel.html +157 -0
  401. plexora-0.0.27/plexora/server/core_tools.py +48 -0
  402. plexora-0.0.27/plexora/server/models/adapters/__init__.py +179 -0
  403. plexora-0.0.27/plexora/server/models/adapters/anndata_adapter.py +1240 -0
  404. plexora-0.0.27/plexora/server/models/adapters/base.py +182 -0
  405. plexora-0.0.27/plexora/server/models/adapters/csv_adapter.py +148 -0
  406. plexora-0.0.27/plexora/server/models/adapters/inspection.py +330 -0
  407. plexora-0.0.27/plexora/server/models/adapters/spatialdata_adapter.py +367 -0
  408. plexora-0.0.27/plexora/server/models/bin_tiles.py +1296 -0
  409. plexora-0.0.27/plexora/server/models/centroid_tiles.py +406 -0
  410. plexora-0.0.27/plexora/server/models/data_migration.py +311 -0
  411. plexora-0.0.27/plexora/server/models/data_model.py +4248 -0
  412. plexora-0.0.27/plexora/server/models/database_model.py +200 -0
  413. plexora-0.0.27/plexora/server/models/import_proposal.py +3014 -0
  414. plexora-0.0.27/plexora/server/models/import_sample.py +799 -0
  415. plexora-0.0.27/plexora/server/models/layer_jobs.py +488 -0
  416. plexora-0.0.27/plexora/server/models/layer_sources.py +816 -0
  417. plexora-0.0.27/plexora/server/models/manifest.py +410 -0
  418. plexora-0.0.27/plexora/server/models/project.py +2387 -0
  419. plexora-0.0.27/plexora/server/models/recipes.py +1150 -0
  420. plexora-0.0.27/plexora/server/models/remote_sessions.py +1367 -0
  421. plexora-0.0.27/plexora/server/models/remote_sources.py +621 -0
  422. plexora-0.0.27/plexora/server/models/server_records.py +138 -0
  423. plexora-0.0.27/plexora/server/models/transcript_tiles.py +1265 -0
  424. plexora-0.0.27/plexora/server/models/viewer_sessions.py +407 -0
  425. plexora-0.0.27/plexora/server/node/api.py +1735 -0
  426. plexora-0.0.27/plexora/server/node/app.py +658 -0
  427. plexora-0.0.27/plexora/server/node/resources.py +928 -0
  428. plexora-0.0.27/plexora/server/plugins.py +290 -0
  429. plexora-0.0.27/plexora/server/providers/__init__.py +240 -0
  430. plexora-0.0.27/plexora/server/providers/base.py +431 -0
  431. plexora-0.0.27/plexora/server/providers/http.py +475 -0
  432. plexora-0.0.27/plexora/server/providers/local.py +660 -0
  433. plexora-0.0.27/plexora/server/providers/node.py +601 -0
  434. plexora-0.0.27/plexora/server/providers/operations.py +178 -0
  435. plexora-0.0.27/plexora/server/providers/remote.py +265 -0
  436. plexora-0.0.27/plexora/server/routes/agent_routes.py +210 -0
  437. plexora-0.0.27/plexora/server/routes/ai_chat_routes.py +201 -0
  438. plexora-0.0.27/plexora/server/routes/ai_routes.py +140 -0
  439. plexora-0.0.27/plexora/server/routes/browse_routes.py +371 -0
  440. plexora-0.0.27/plexora/server/routes/data_routes.py +1193 -0
  441. plexora-0.0.27/plexora/server/routes/desktop_routes.py +178 -0
  442. plexora-0.0.27/plexora/server/routes/gcloud_routes.py +368 -0
  443. plexora-0.0.27/plexora/server/routes/import_routes.py +1079 -0
  444. plexora-0.0.27/plexora/server/routes/license_routes.py +174 -0
  445. plexora-0.0.27/plexora/server/routes/page_routes.py +415 -0
  446. plexora-0.0.27/plexora/server/routes/project_routes.py +909 -0
  447. plexora-0.0.27/plexora/server/routes/settings_routes.py +1391 -0
  448. plexora-0.0.27/plexora/server/routes/system_routes.py +56 -0
  449. plexora-0.0.27/plexora/server/routes/telemetry_routes.py +189 -0
  450. plexora-0.0.27/plexora/server/routes/tool_routes.py +544 -0
  451. plexora-0.0.27/plexora/server/routes/update_routes.py +247 -0
  452. plexora-0.0.27/plexora/server/utils/boundary_mask.py +614 -0
  453. plexora-0.0.27/plexora/server/utils/brightfield.py +1305 -0
  454. plexora-0.0.27/plexora/server/utils/dicom_wsi.py +1542 -0
  455. plexora-0.0.27/plexora/server/utils/fast_png.py +114 -0
  456. plexora-0.0.27/plexora/server/utils/gene_groups.py +126 -0
  457. plexora-0.0.27/plexora/server/utils/image_pyramid.py +647 -0
  458. plexora-0.0.27/plexora/server/utils/jit.py +138 -0
  459. plexora-0.0.27/plexora/server/utils/label_kernels.py +132 -0
  460. plexora-0.0.27/plexora/server/utils/label_overlay.py +240 -0
  461. plexora-0.0.27/plexora/server/utils/layer_composite.py +343 -0
  462. plexora-0.0.27/plexora/server/utils/native_dialog.py +374 -0
  463. plexora-0.0.27/plexora/server/utils/ome_zarr.py +1287 -0
  464. plexora-0.0.27/plexora/server/utils/pixel_scale.py +128 -0
  465. plexora-0.0.27/plexora/server/utils/remote_image.py +112 -0
  466. plexora-0.0.27/plexora/server/utils/remote_store.py +2635 -0
  467. plexora-0.0.27/plexora/server/utils/segmentation_pyramid.py +1119 -0
  468. plexora-0.0.27/plexora/server/utils/source_image.py +536 -0
  469. plexora-0.0.27/plexora/server/utils/tenx_matrix.py +755 -0
  470. plexora-0.0.27/plexora/server/utils/tiff_region.py +488 -0
  471. plexora-0.0.27/plexora/server/utils/xenium_focus.py +305 -0
  472. plexora-0.0.27/plexora/server_cli.py +98 -0
  473. plexora-0.0.27/plexora/telemetry/__init__.py +40 -0
  474. plexora-0.0.27/plexora/telemetry/agent_hooks.py +118 -0
  475. plexora-0.0.27/plexora/telemetry/batch.py +159 -0
  476. plexora-0.0.27/plexora/telemetry/cli.py +115 -0
  477. plexora-0.0.27/plexora/telemetry/client.py +636 -0
  478. plexora-0.0.27/plexora/telemetry/config.py +199 -0
  479. plexora-0.0.27/plexora/telemetry/dataset.py +184 -0
  480. plexora-0.0.27/plexora/telemetry/environment.py +182 -0
  481. plexora-0.0.27/plexora/telemetry/flask_hooks.py +211 -0
  482. plexora-0.0.27/plexora/telemetry/identity.py +73 -0
  483. plexora-0.0.27/plexora/telemetry/node_hooks.py +248 -0
  484. plexora-0.0.27/plexora/telemetry/performance.py +97 -0
  485. plexora-0.0.27/plexora/telemetry/queue.py +457 -0
  486. plexora-0.0.27/plexora/telemetry/redact.py +154 -0
  487. plexora-0.0.27/plexora/telemetry/report.py +117 -0
  488. plexora-0.0.27/plexora/telemetry/sample.py +81 -0
  489. plexora-0.0.27/plexora/telemetry/schema.py +763 -0
  490. plexora-0.0.27/plexora/telemetry/uploader.py +404 -0
  491. plexora-0.0.27/plexora/updates.py +571 -0
  492. plexora-0.0.27/plexora.egg-info/PKG-INFO +209 -0
  493. plexora-0.0.27/plexora.egg-info/SOURCES.txt +1043 -0
  494. plexora-0.0.27/plexora.egg-info/entry_points.txt +13 -0
  495. plexora-0.0.27/plexora.egg-info/requires.txt +61 -0
  496. plexora-0.0.27/pyproject.toml +238 -0
  497. plexora-0.0.27/setup.cfg +4 -0
  498. plexora-0.0.27/tests/test_agent_architecture.py +107 -0
  499. plexora-0.0.27/tests/test_agent_artifacts.py +37 -0
  500. plexora-0.0.27/tests/test_agent_cell_gallery.py +135 -0
  501. plexora-0.0.27/tests/test_agent_client_probes.py +155 -0
  502. plexora-0.0.27/tests/test_agent_explain_cell.py +91 -0
  503. plexora-0.0.27/tests/test_agent_future_modality.py +69 -0
  504. plexora-0.0.27/tests/test_agent_gate_panel.py +56 -0
  505. plexora-0.0.27/tests/test_agent_gate_sampling.py +72 -0
  506. plexora-0.0.27/tests/test_agent_gating.py +84 -0
  507. plexora-0.0.27/tests/test_agent_gating_dataset.py +78 -0
  508. plexora-0.0.27/tests/test_agent_jobs.py +172 -0
  509. plexora-0.0.27/tests/test_agent_policy_scopes.py +55 -0
  510. plexora-0.0.27/tests/test_agent_registry.py +82 -0
  511. plexora-0.0.27/tests/test_agent_render.py +132 -0
  512. plexora-0.0.27/tests/test_agent_render_formats.py +154 -0
  513. plexora-0.0.27/tests/test_agent_render_layers.py +122 -0
  514. plexora-0.0.27/tests/test_agent_render_node.py +89 -0
  515. plexora-0.0.27/tests/test_agent_report.py +113 -0
  516. plexora-0.0.27/tests/test_agent_roi.py +51 -0
  517. plexora-0.0.27/tests/test_agent_routes_guard.py +29 -0
  518. plexora-0.0.27/tests/test_agent_scene.py +83 -0
  519. plexora-0.0.27/tests/test_agent_scope.py +76 -0
  520. plexora-0.0.27/tests/test_agent_session.py +85 -0
  521. plexora-0.0.27/tests/test_agent_undo.py +130 -0
  522. plexora-0.0.27/tests/test_agent_vertical_slice.py +103 -0
  523. plexora-0.0.27/tests/test_agent_viewer_api.py +349 -0
  524. plexora-0.0.27/tests/test_agent_viewer_routes.py +98 -0
  525. plexora-0.0.27/tests/test_ai_bench.py +40 -0
  526. plexora-0.0.27/tests/test_ai_chat.py +814 -0
  527. plexora-0.0.27/tests/test_ai_chat_panel.py +74 -0
  528. plexora-0.0.27/tests/test_ai_context.py +355 -0
  529. plexora-0.0.27/tests/test_ai_e2e.py +69 -0
  530. plexora-0.0.27/tests/test_ai_harness.py +816 -0
  531. plexora-0.0.27/tests/test_ai_harness_qc.py +245 -0
  532. plexora-0.0.27/tests/test_ai_models_mcp.py +301 -0
  533. plexora-0.0.27/tests/test_ai_parallel_markers.py +481 -0
  534. plexora-0.0.27/tests/test_ai_route_bench.py +145 -0
  535. plexora-0.0.27/tests/test_ai_routes.py +272 -0
  536. plexora-0.0.27/tests/test_ai_setup.py +95 -0
  537. plexora-0.0.27/tests/test_ai_skills.py +100 -0
  538. plexora-0.0.27/tests/test_ai_tasks.py +59 -0
  539. plexora-0.0.27/tests/test_ai_token.py +74 -0
  540. plexora-0.0.27/tests/test_app_shell.py +262 -0
  541. plexora-0.0.27/tests/test_autogate_units.py +1468 -0
  542. plexora-0.0.27/tests/test_bin_tiles.py +628 -0
  543. plexora-0.0.27/tests/test_boundary_mask.py +434 -0
  544. plexora-0.0.27/tests/test_cell_mode_control.py +437 -0
  545. plexora-0.0.27/tests/test_channel_auto_revert.py +147 -0
  546. plexora-0.0.27/tests/test_cli.py +1531 -0
  547. plexora-0.0.27/tests/test_connect.py +2379 -0
  548. plexora-0.0.27/tests/test_connection_modal.py +675 -0
  549. plexora-0.0.27/tests/test_core_tools.py +182 -0
  550. plexora-0.0.27/tests/test_dataset_nav.py +80 -0
  551. plexora-0.0.27/tests/test_dataset_strip.py +81 -0
  552. plexora-0.0.27/tests/test_desktop_bridge.py +67 -0
  553. plexora-0.0.27/tests/test_desktop_cli.py +292 -0
  554. plexora-0.0.27/tests/test_desktop_process.py +122 -0
  555. plexora-0.0.27/tests/test_desktop_routes.py +132 -0
  556. plexora-0.0.27/tests/test_docs_coverage.py +45 -0
  557. plexora-0.0.27/tests/test_docs_docstrings.py +57 -0
  558. plexora-0.0.27/tests/test_docs_envvars.py +30 -0
  559. plexora-0.0.27/tests/test_docs_examples.py +133 -0
  560. plexora-0.0.27/tests/test_docs_freshness.py +23 -0
  561. plexora-0.0.27/tests/test_docs_links.py +57 -0
  562. plexora-0.0.27/tests/test_docs_signatures.py +38 -0
  563. plexora-0.0.27/tests/test_gating_candidates.py +329 -0
  564. plexora-0.0.27/tests/test_gating_delta.py +232 -0
  565. plexora-0.0.27/tests/test_gating_hierarchy.py +355 -0
  566. plexora-0.0.27/tests/test_gating_limits.py +411 -0
  567. plexora-0.0.27/tests/test_gating_qc_exclusion.py +324 -0
  568. plexora-0.0.27/tests/test_gating_session.py +1247 -0
  569. plexora-0.0.27/tests/test_gcloud.py +1646 -0
  570. plexora-0.0.27/tests/test_image_pyramid.py +474 -0
  571. plexora-0.0.27/tests/test_import_dialog.py +331 -0
  572. plexora-0.0.27/tests/test_import_entry_points.py +206 -0
  573. plexora-0.0.27/tests/test_import_from_a_node.py +284 -0
  574. plexora-0.0.27/tests/test_import_help.py +311 -0
  575. plexora-0.0.27/tests/test_import_proposal.py +663 -0
  576. plexora-0.0.27/tests/test_import_routes_json_errors.py +68 -0
  577. plexora-0.0.27/tests/test_import_sample_association.py +388 -0
  578. plexora-0.0.27/tests/test_label_gpu.py +186 -0
  579. plexora-0.0.27/tests/test_label_gpu_parity.py +68 -0
  580. plexora-0.0.27/tests/test_label_overlay.py +88 -0
  581. plexora-0.0.27/tests/test_layer_manager.py +41 -0
  582. plexora-0.0.27/tests/test_layer_sources.py +512 -0
  583. plexora-0.0.27/tests/test_license_js.py +58 -0
  584. plexora-0.0.27/tests/test_license_routes.py +142 -0
  585. plexora-0.0.27/tests/test_licensing_certificate.py +145 -0
  586. plexora-0.0.27/tests/test_licensing_cli.py +148 -0
  587. plexora-0.0.27/tests/test_licensing_client.py +207 -0
  588. plexora-0.0.27/tests/test_licensing_delegation.py +168 -0
  589. plexora-0.0.27/tests/test_licensing_enforcement.py +329 -0
  590. plexora-0.0.27/tests/test_licensing_entitlements.py +93 -0
  591. plexora-0.0.27/tests/test_licensing_hardening.py +346 -0
  592. plexora-0.0.27/tests/test_licensing_hpc.py +209 -0
  593. plexora-0.0.27/tests/test_licensing_plugins.py +154 -0
  594. plexora-0.0.27/tests/test_licensing_staging_config.py +90 -0
  595. plexora-0.0.27/tests/test_licensing_state.py +475 -0
  596. plexora-0.0.27/tests/test_licensing_vectors.py +61 -0
  597. plexora-0.0.27/tests/test_lifetime.py +114 -0
  598. plexora-0.0.27/tests/test_load_progress.py +108 -0
  599. plexora-0.0.27/tests/test_manifest.py +263 -0
  600. plexora-0.0.27/tests/test_mcp_gating.py +111 -0
  601. plexora-0.0.27/tests/test_mcp_http.py +196 -0
  602. plexora-0.0.27/tests/test_mcp_profiles.py +26 -0
  603. plexora-0.0.27/tests/test_mcp_qc.py +57 -0
  604. plexora-0.0.27/tests/test_mcp_server.py +118 -0
  605. plexora-0.0.27/tests/test_mcp_stdio.py +46 -0
  606. plexora-0.0.27/tests/test_mini_map.py +367 -0
  607. plexora-0.0.27/tests/test_node_image.py +833 -0
  608. plexora-0.0.27/tests/test_node_image_pyramid.py +223 -0
  609. plexora-0.0.27/tests/test_node_image_type.py +282 -0
  610. plexora-0.0.27/tests/test_open_project.py +209 -0
  611. plexora-0.0.27/tests/test_paths.py +496 -0
  612. plexora-0.0.27/tests/test_pixel_scale.py +41 -0
  613. plexora-0.0.27/tests/test_plugin_boundary.py +558 -0
  614. plexora-0.0.27/tests/test_plugins.py +614 -0
  615. plexora-0.0.27/tests/test_popover_menu.py +58 -0
  616. plexora-0.0.27/tests/test_presets_nuclear.py +37 -0
  617. plexora-0.0.27/tests/test_qc_artifacts_js.py +56 -0
  618. plexora-0.0.27/tests/test_qc_bench.py +51 -0
  619. plexora-0.0.27/tests/test_qc_blur_js.py +44 -0
  620. plexora-0.0.27/tests/test_qc_bulk_timing.py +143 -0
  621. plexora-0.0.27/tests/test_qc_candidate_noise.py +173 -0
  622. plexora-0.0.27/tests/test_qc_cell_rules.py +390 -0
  623. plexora-0.0.27/tests/test_qc_check_sampling.py +511 -0
  624. plexora-0.0.27/tests/test_qc_detectors.py +173 -0
  625. plexora-0.0.27/tests/test_qc_hover_js.py +99 -0
  626. plexora-0.0.27/tests/test_qc_live_run_fixes.py +418 -0
  627. plexora-0.0.27/tests/test_qc_mirror.py +130 -0
  628. plexora-0.0.27/tests/test_qc_payload_trim.py +374 -0
  629. plexora-0.0.27/tests/test_qc_picker_js.py +48 -0
  630. plexora-0.0.27/tests/test_qc_provenance.py +238 -0
  631. plexora-0.0.27/tests/test_qc_refine.py +271 -0
  632. plexora-0.0.27/tests/test_qc_refine_tool.py +121 -0
  633. plexora-0.0.27/tests/test_qc_registration.py +338 -0
  634. plexora-0.0.27/tests/test_qc_registration_js.py +37 -0
  635. plexora-0.0.27/tests/test_qc_results.py +246 -0
  636. plexora-0.0.27/tests/test_qc_scan.py +171 -0
  637. plexora-0.0.27/tests/test_qc_score_fields.py +125 -0
  638. plexora-0.0.27/tests/test_qc_session.py +606 -0
  639. plexora-0.0.27/tests/test_qc_session_checks.py +278 -0
  640. plexora-0.0.27/tests/test_qc_session_refine.py +188 -0
  641. plexora-0.0.27/tests/test_qc_tool_surface.py +206 -0
  642. plexora-0.0.27/tests/test_qc_units.py +470 -0
  643. plexora-0.0.27/tests/test_release_script.py +270 -0
  644. plexora-0.0.27/tests/test_remote_chunk_cache.py +245 -0
  645. plexora-0.0.27/tests/test_remote_connect.py +2138 -0
  646. plexora-0.0.27/tests/test_remote_dicom.py +212 -0
  647. plexora-0.0.27/tests/test_remote_discovery.py +146 -0
  648. plexora-0.0.27/tests/test_remote_file.py +321 -0
  649. plexora-0.0.27/tests/test_remote_image_provider.py +189 -0
  650. plexora-0.0.27/tests/test_remote_image_status.py +104 -0
  651. plexora-0.0.27/tests/test_remote_jobs.py +144 -0
  652. plexora-0.0.27/tests/test_remote_labels.py +171 -0
  653. plexora-0.0.27/tests/test_remote_locator.py +197 -0
  654. plexora-0.0.27/tests/test_remote_picture.py +77 -0
  655. plexora-0.0.27/tests/test_remote_tables.py +164 -0
  656. plexora-0.0.27/tests/test_remote_tiff.py +158 -0
  657. plexora-0.0.27/tests/test_resource_status_notice.py +94 -0
  658. plexora-0.0.27/tests/test_segmentation_wait.py +163 -0
  659. plexora-0.0.27/tests/test_server_records.py +36 -0
  660. plexora-0.0.27/tests/test_session_expiry.py +177 -0
  661. plexora-0.0.27/tests/test_session_mirror.py +39 -0
  662. plexora-0.0.27/tests/test_settings_webdata_page.py +123 -0
  663. plexora-0.0.27/tests/test_single_image_import.py +420 -0
  664. plexora-0.0.27/tests/test_slider.py +329 -0
  665. plexora-0.0.27/tests/test_slider_css.py +235 -0
  666. plexora-0.0.27/tests/test_source_image_core.py +78 -0
  667. plexora-0.0.27/tests/test_subprocess_flags.py +58 -0
  668. plexora-0.0.27/tests/test_telemetry_agent.py +118 -0
  669. plexora-0.0.27/tests/test_telemetry_cli.py +85 -0
  670. plexora-0.0.27/tests/test_telemetry_client.py +172 -0
  671. plexora-0.0.27/tests/test_telemetry_config.py +159 -0
  672. plexora-0.0.27/tests/test_telemetry_dataset.py +116 -0
  673. plexora-0.0.27/tests/test_telemetry_hooks.py +176 -0
  674. plexora-0.0.27/tests/test_telemetry_hooks_cost.py +59 -0
  675. plexora-0.0.27/tests/test_telemetry_js.py +87 -0
  676. plexora-0.0.27/tests/test_telemetry_node.py +132 -0
  677. plexora-0.0.27/tests/test_telemetry_privacy.py +136 -0
  678. plexora-0.0.27/tests/test_telemetry_queue.py +192 -0
  679. plexora-0.0.27/tests/test_telemetry_routes.py +147 -0
  680. plexora-0.0.27/tests/test_telemetry_schema.py +117 -0
  681. plexora-0.0.27/tests/test_telemetry_tiles.py +49 -0
  682. plexora-0.0.27/tests/test_telemetry_uploader.py +236 -0
  683. plexora-0.0.27/tests/test_thumbnail_rgb.py +68 -0
  684. plexora-0.0.27/tests/test_tiff_region.py +128 -0
  685. plexora-0.0.27/tests/test_tile_colorize.py +74 -0
  686. plexora-0.0.27/tests/test_toast.py +74 -0
  687. plexora-0.0.27/tests/test_tool_cards.py +226 -0
  688. plexora-0.0.27/tests/test_transcript_cost.py +36 -0
  689. plexora-0.0.27/tests/test_updates.py +497 -0
  690. plexora-0.0.27/tests/test_view_menu.py +146 -0
  691. plexora-0.0.27/tests/test_view_transform.py +184 -0
  692. plexora-0.0.27/tests/test_view_transform_routes.py +88 -0
  693. plexora-0.0.27/tests/test_viewer_sessions.py +99 -0
  694. plexora-0.0.27/tests/test_visium_hd_import.py +302 -0
  695. plexora-0.0.27/tests/test_visium_import.py +332 -0
  696. plexora-0.0.23/MANIFEST.in +0 -16
  697. plexora-0.0.23/PKG-INFO +0 -550
  698. plexora-0.0.23/README.md +0 -499
  699. plexora-0.0.23/plexora/__init__.py +0 -372
  700. plexora-0.0.23/plexora/_resources.py +0 -382
  701. plexora-0.0.23/plexora/api/__init__.py +0 -124
  702. plexora-0.0.23/plexora/api/dataset.py +0 -654
  703. plexora-0.0.23/plexora/api/http.py +0 -19
  704. plexora-0.0.23/plexora/api/plugin.py +0 -743
  705. plexora-0.0.23/plexora/api/store.py +0 -221
  706. plexora-0.0.23/plexora/cli.py +0 -2314
  707. plexora-0.0.23/plexora/client/dist/vendor_bundle.js +0 -2
  708. plexora-0.0.23/plexora/client/external/openseadragon-bin-2.4.0/canvas-overlay-hd.js +0 -140
  709. plexora-0.0.23/plexora/client/src/css/main.css +0 -7197
  710. plexora-0.0.23/plexora/client/src/css/openProject.css +0 -661
  711. plexora-0.0.23/plexora/client/src/css/quickView.css +0 -445
  712. plexora-0.0.23/plexora/client/src/css/settings.css +0 -876
  713. plexora-0.0.23/plexora/client/src/css/viewer.css +0 -3041
  714. plexora-0.0.23/plexora/client/src/js/main.js +0 -1728
  715. plexora-0.0.23/plexora/client/src/js/pluginRegistry.js +0 -152
  716. plexora-0.0.23/plexora/client/src/js/services/appRouter.js +0 -469
  717. plexora-0.0.23/plexora/client/src/js/services/appStatus.js +0 -315
  718. plexora-0.0.23/plexora/client/src/js/services/browsePicker.js +0 -525
  719. plexora-0.0.23/plexora/client/src/js/services/connectionModal.js +0 -2874
  720. plexora-0.0.23/plexora/client/src/js/services/dataLayer.js +0 -429
  721. plexora-0.0.23/plexora/client/src/js/services/fileLocation.js +0 -704
  722. plexora-0.0.23/plexora/client/src/js/services/numericData.js +0 -128
  723. plexora-0.0.23/plexora/client/src/js/services/resourceRouting.js +0 -249
  724. plexora-0.0.23/plexora/client/src/js/services/resourceStatus.js +0 -532
  725. plexora-0.0.23/plexora/client/src/js/services/sessionExpiry.js +0 -338
  726. plexora-0.0.23/plexora/client/src/js/services/toast.js +0 -175
  727. plexora-0.0.23/plexora/client/src/js/views/cardList.js +0 -258
  728. plexora-0.0.23/plexora/client/src/js/views/columnClassifier.js +0 -146
  729. plexora-0.0.23/plexora/client/src/js/views/confirmDialog.js +0 -197
  730. plexora-0.0.23/plexora/client/src/js/views/datasetNav.js +0 -284
  731. plexora-0.0.23/plexora/client/src/js/views/glInit.js +0 -267
  732. plexora-0.0.23/plexora/client/src/js/views/gradientRange.js +0 -523
  733. plexora-0.0.23/plexora/client/src/js/views/imageViewer.js +0 -3128
  734. plexora-0.0.23/plexora/client/src/js/views/importHelp.js +0 -576
  735. plexora-0.0.23/plexora/client/src/js/views/importSample.js +0 -1581
  736. plexora-0.0.23/plexora/client/src/js/views/labelTile.js +0 -154
  737. plexora-0.0.23/plexora/client/src/js/views/layerChannelPanel.js +0 -396
  738. plexora-0.0.23/plexora/client/src/js/views/layerManager.js +0 -1862
  739. plexora-0.0.23/plexora/client/src/js/views/miniMap.js +0 -843
  740. plexora-0.0.23/plexora/client/src/js/views/navbarControls.js +0 -161
  741. plexora-0.0.23/plexora/client/src/js/views/openProjectPage.js +0 -887
  742. plexora-0.0.23/plexora/client/src/js/views/pluginHelp.js +0 -116
  743. plexora-0.0.23/plexora/client/src/js/views/popoverMenu.js +0 -129
  744. plexora-0.0.23/plexora/client/src/js/views/projectEdit.js +0 -607
  745. plexora-0.0.23/plexora/client/src/js/views/quickViewLanding.js +0 -348
  746. plexora-0.0.23/plexora/client/src/js/views/rgbImageViewer.js +0 -121
  747. plexora-0.0.23/plexora/client/src/js/views/searchableSelect.js +0 -419
  748. plexora-0.0.23/plexora/client/src/js/views/segmentationWait.js +0 -317
  749. plexora-0.0.23/plexora/client/src/js/views/settingsPage.js +0 -1491
  750. plexora-0.0.23/plexora/client/src/js/views/slider.js +0 -831
  751. plexora-0.0.23/plexora/client/src/js/views/tileColorize.js +0 -321
  752. plexora-0.0.23/plexora/client/src/js/views/tileDecode.js +0 -317
  753. plexora-0.0.23/plexora/client/src/js/views/toolLoader.js +0 -1286
  754. plexora-0.0.23/plexora/client/src/js/views/viewerControls.js +0 -1071
  755. plexora-0.0.23/plexora/client/src/js/views/viewerErrorState.js +0 -139
  756. plexora-0.0.23/plexora/client/src/js/views/viewerManager.js +0 -2366
  757. plexora-0.0.23/plexora/client/src/js/views/viewerSidebar.js +0 -1731
  758. plexora-0.0.23/plexora/client/templates/base.html +0 -454
  759. plexora-0.0.23/plexora/client/templates/index.html +0 -598
  760. plexora-0.0.23/plexora/client/templates/open_project.html +0 -118
  761. plexora-0.0.23/plexora/client/templates/project_edit.html +0 -361
  762. plexora-0.0.23/plexora/client/templates/settings.html +0 -365
  763. plexora-0.0.23/plexora/connect.py +0 -3126
  764. plexora-0.0.23/plexora/datasets.py +0 -1192
  765. plexora-0.0.23/plexora/datasource.py +0 -1441
  766. plexora-0.0.23/plexora/gcloud.py +0 -2158
  767. plexora-0.0.23/plexora/jupyter.py +0 -950
  768. plexora-0.0.23/plexora/memory.py +0 -785
  769. plexora-0.0.23/plexora/nodes.py +0 -906
  770. plexora-0.0.23/plexora/paths.py +0 -822
  771. plexora-0.0.23/plexora/plugins/cell_explorer/__init__.py +0 -105
  772. plexora-0.0.23/plexora/plugins/cell_explorer/static/cellExplorerSidebarController.js +0 -874
  773. plexora-0.0.23/plexora/plugins/figure_builder/__init__.py +0 -173
  774. plexora-0.0.23/plexora/plugins/figure_builder/server/compose.py +0 -825
  775. plexora-0.0.23/plexora/plugins/figure_builder/server/export_jobs.py +0 -148
  776. plexora-0.0.23/plexora/plugins/figure_builder/server/provenance.py +0 -174
  777. plexora-0.0.23/plexora/plugins/figure_builder/server/render.py +0 -441
  778. plexora-0.0.23/plexora/plugins/figure_builder/server/schema.py +0 -1397
  779. plexora-0.0.23/plexora/plugins/figure_builder/static/figureCanvas.js +0 -3516
  780. plexora-0.0.23/plexora/plugins/figure_builder/static/figureCaptureBoxes.js +0 -369
  781. plexora-0.0.23/plexora/plugins/figure_builder/static/figureCaptureDock.js +0 -516
  782. plexora-0.0.23/plexora/plugins/figure_builder/static/figureCaptureTool.js +0 -1060
  783. plexora-0.0.23/plexora/plugins/figure_builder/static/figureContextBar.js +0 -1267
  784. plexora-0.0.23/plexora/plugins/figure_builder/static/figureExportUi.js +0 -174
  785. plexora-0.0.23/plexora/plugins/figure_builder/static/figureImagePanel.js +0 -1558
  786. plexora-0.0.23/plexora/plugins/figure_builder/static/figureLibrary.js +0 -251
  787. plexora-0.0.23/plexora/plugins/figure_builder/static/figurePanelCompositor.js +0 -157
  788. plexora-0.0.23/plexora/plugins/figure_builder/static/figureQuickEdit.js +0 -970
  789. plexora-0.0.23/plexora/plugins/figure_builder/static/figureSceneSnapshot.js +0 -380
  790. plexora-0.0.23/plexora/plugins/figure_builder/static/figureSchema.js +0 -466
  791. plexora-0.0.23/plexora/plugins/figure_builder/static/figureSidebarController.js +0 -1238
  792. plexora-0.0.23/plexora/plugins/figure_builder/static/figureWorkspace.js +0 -2692
  793. plexora-0.0.23/plexora/plugins/figure_builder/static/figure_builder.css +0 -5986
  794. plexora-0.0.23/plexora/plugins/figure_builder/templates/figure_builder/workspace.html +0 -27
  795. plexora-0.0.23/plexora/plugins/gating/__init__.py +0 -80
  796. plexora-0.0.23/plexora/plugins/gating/server/anndata_gates.py +0 -367
  797. plexora-0.0.23/plexora/plugins/gating/server/model.py +0 -275
  798. plexora-0.0.23/plexora/plugins/gating/server/routes.py +0 -226
  799. plexora-0.0.23/plexora/plugins/gating/server/tableops.py +0 -119
  800. plexora-0.0.23/plexora/plugins/gating/static/csvGatingList.js +0 -940
  801. plexora-0.0.23/plexora/plugins/gating/static/gating.css +0 -274
  802. plexora-0.0.23/plexora/plugins/gating/static/gatingApi.js +0 -230
  803. plexora-0.0.23/plexora/plugins/gating/static/gatingSidebarController.js +0 -913
  804. plexora-0.0.23/plexora/plugins/gating/templates/gating/panel.html +0 -88
  805. plexora-0.0.23/plexora/plugins/roi/__init__.py +0 -101
  806. plexora-0.0.23/plexora/plugins/roi/static/roiApi.js +0 -192
  807. plexora-0.0.23/plexora/plugins/roi/static/roiSidebarController.js +0 -1063
  808. plexora-0.0.23/plexora/plugins/roi/static/roiState.js +0 -522
  809. plexora-0.0.23/plexora/plugins/roi/static/roiTools.js +0 -1029
  810. plexora-0.0.23/plexora/plugins/transcripts/__init__.py +0 -99
  811. plexora-0.0.23/plexora/plugins/transcripts/server/routes.py +0 -585
  812. plexora-0.0.23/plexora/plugins/transcripts/static/transcriptGroupModal.js +0 -635
  813. plexora-0.0.23/plexora/plugins/transcripts/static/transcriptLayer.js +0 -1529
  814. plexora-0.0.23/plexora/plugins/transcripts/static/transcriptPoints.js +0 -892
  815. plexora-0.0.23/plexora/plugins/transcripts/static/transcripts.css +0 -1358
  816. plexora-0.0.23/plexora/plugins/transcripts/static/transcriptsSidebarController.js +0 -1213
  817. plexora-0.0.23/plexora/plugins/transcripts/templates/transcripts/panel.html +0 -236
  818. plexora-0.0.23/plexora/plugins/visium_hd/__init__.py +0 -56
  819. plexora-0.0.23/plexora/plugins/visium_hd/server/routes.py +0 -238
  820. plexora-0.0.23/plexora/plugins/visium_hd/static/binLayer.js +0 -557
  821. plexora-0.0.23/plexora/plugins/visium_hd/static/visiumHdApi.js +0 -97
  822. plexora-0.0.23/plexora/plugins/visium_hd/static/visiumHdSidebarController.js +0 -840
  823. plexora-0.0.23/plexora/plugins/visium_hd/static/visium_hd.css +0 -360
  824. plexora-0.0.23/plexora/plugins/visium_hd/templates/visium_hd/panel.html +0 -115
  825. plexora-0.0.23/plexora/server/models/adapters/__init__.py +0 -118
  826. plexora-0.0.23/plexora/server/models/adapters/anndata_adapter.py +0 -1108
  827. plexora-0.0.23/plexora/server/models/adapters/base.py +0 -181
  828. plexora-0.0.23/plexora/server/models/adapters/csv_adapter.py +0 -132
  829. plexora-0.0.23/plexora/server/models/adapters/inspection.py +0 -329
  830. plexora-0.0.23/plexora/server/models/adapters/spatialdata_adapter.py +0 -252
  831. plexora-0.0.23/plexora/server/models/bin_tiles.py +0 -905
  832. plexora-0.0.23/plexora/server/models/centroid_tiles.py +0 -399
  833. plexora-0.0.23/plexora/server/models/data_migration.py +0 -307
  834. plexora-0.0.23/plexora/server/models/data_model.py +0 -3544
  835. plexora-0.0.23/plexora/server/models/database_model.py +0 -187
  836. plexora-0.0.23/plexora/server/models/import_proposal.py +0 -2359
  837. plexora-0.0.23/plexora/server/models/import_sample.py +0 -592
  838. plexora-0.0.23/plexora/server/models/layer_jobs.py +0 -373
  839. plexora-0.0.23/plexora/server/models/layer_sources.py +0 -753
  840. plexora-0.0.23/plexora/server/models/manifest.py +0 -350
  841. plexora-0.0.23/plexora/server/models/project.py +0 -2300
  842. plexora-0.0.23/plexora/server/models/recipes.py +0 -1139
  843. plexora-0.0.23/plexora/server/models/remote_sessions.py +0 -1248
  844. plexora-0.0.23/plexora/server/models/transcript_tiles.py +0 -1260
  845. plexora-0.0.23/plexora/server/node/api.py +0 -1544
  846. plexora-0.0.23/plexora/server/node/app.py +0 -675
  847. plexora-0.0.23/plexora/server/node/resources.py +0 -838
  848. plexora-0.0.23/plexora/server/plugins.py +0 -253
  849. plexora-0.0.23/plexora/server/providers/__init__.py +0 -223
  850. plexora-0.0.23/plexora/server/providers/base.py +0 -340
  851. plexora-0.0.23/plexora/server/providers/http.py +0 -460
  852. plexora-0.0.23/plexora/server/providers/local.py +0 -594
  853. plexora-0.0.23/plexora/server/providers/node.py +0 -575
  854. plexora-0.0.23/plexora/server/providers/operations.py +0 -143
  855. plexora-0.0.23/plexora/server/routes/browse_routes.py +0 -366
  856. plexora-0.0.23/plexora/server/routes/data_routes.py +0 -1116
  857. plexora-0.0.23/plexora/server/routes/gcloud_routes.py +0 -362
  858. plexora-0.0.23/plexora/server/routes/import_routes.py +0 -975
  859. plexora-0.0.23/plexora/server/routes/page_routes.py +0 -359
  860. plexora-0.0.23/plexora/server/routes/project_routes.py +0 -881
  861. plexora-0.0.23/plexora/server/routes/settings_routes.py +0 -1244
  862. plexora-0.0.23/plexora/server/routes/system_routes.py +0 -39
  863. plexora-0.0.23/plexora/server/routes/tool_routes.py +0 -523
  864. plexora-0.0.23/plexora/server/utils/boundary_mask.py +0 -547
  865. plexora-0.0.23/plexora/server/utils/brightfield.py +0 -1232
  866. plexora-0.0.23/plexora/server/utils/dicom_wsi.py +0 -1304
  867. plexora-0.0.23/plexora/server/utils/fast_png.py +0 -97
  868. plexora-0.0.23/plexora/server/utils/native_dialog.py +0 -368
  869. plexora-0.0.23/plexora/server/utils/ome_zarr.py +0 -805
  870. plexora-0.0.23/plexora/server/utils/segmentation_pyramid.py +0 -874
  871. plexora-0.0.23/plexora/server/utils/tenx_matrix.py +0 -640
  872. plexora-0.0.23/plexora/server/utils/xenium_focus.py +0 -301
  873. plexora-0.0.23/plexora/server_cli.py +0 -58
  874. plexora-0.0.23/plexora.egg-info/PKG-INFO +0 -550
  875. plexora-0.0.23/plexora.egg-info/SOURCES.txt +0 -570
  876. plexora-0.0.23/plexora.egg-info/entry_points.txt +0 -12
  877. plexora-0.0.23/plexora.egg-info/requires.txt +0 -45
  878. plexora-0.0.23/pyproject.toml +0 -186
  879. plexora-0.0.23/setup.cfg +0 -4
  880. plexora-0.0.23/tests/test_app_shell.py +0 -245
  881. plexora-0.0.23/tests/test_bin_tiles.py +0 -278
  882. plexora-0.0.23/tests/test_boundary_mask.py +0 -327
  883. plexora-0.0.23/tests/test_cell_mode_control.py +0 -437
  884. plexora-0.0.23/tests/test_channel_auto_revert.py +0 -135
  885. plexora-0.0.23/tests/test_cli.py +0 -1507
  886. plexora-0.0.23/tests/test_connect.py +0 -2349
  887. plexora-0.0.23/tests/test_connection_modal.py +0 -650
  888. plexora-0.0.23/tests/test_dataset_nav.py +0 -74
  889. plexora-0.0.23/tests/test_gcloud.py +0 -1416
  890. plexora-0.0.23/tests/test_import_dialog.py +0 -188
  891. plexora-0.0.23/tests/test_import_entry_points.py +0 -190
  892. plexora-0.0.23/tests/test_import_from_a_node.py +0 -283
  893. plexora-0.0.23/tests/test_import_help.py +0 -308
  894. plexora-0.0.23/tests/test_import_proposal.py +0 -656
  895. plexora-0.0.23/tests/test_layer_manager.py +0 -40
  896. plexora-0.0.23/tests/test_layer_sources.py +0 -490
  897. plexora-0.0.23/tests/test_manifest.py +0 -250
  898. plexora-0.0.23/tests/test_mini_map.py +0 -305
  899. plexora-0.0.23/tests/test_node_image.py +0 -781
  900. plexora-0.0.23/tests/test_node_image_type.py +0 -281
  901. plexora-0.0.23/tests/test_open_project.py +0 -207
  902. plexora-0.0.23/tests/test_paths.py +0 -495
  903. plexora-0.0.23/tests/test_plugin_boundary.py +0 -520
  904. plexora-0.0.23/tests/test_plugins.py +0 -610
  905. plexora-0.0.23/tests/test_popover_menu.py +0 -55
  906. plexora-0.0.23/tests/test_remote_connect.py +0 -2047
  907. plexora-0.0.23/tests/test_resource_status_banner.py +0 -94
  908. plexora-0.0.23/tests/test_segmentation_wait.py +0 -158
  909. plexora-0.0.23/tests/test_session_expiry.py +0 -169
  910. plexora-0.0.23/tests/test_single_image_import.py +0 -420
  911. plexora-0.0.23/tests/test_slider.py +0 -259
  912. plexora-0.0.23/tests/test_slider_css.py +0 -231
  913. plexora-0.0.23/tests/test_tile_colorize.py +0 -66
  914. plexora-0.0.23/tests/test_toast.py +0 -70
  915. plexora-0.0.23/tests/test_tool_cards.py +0 -214
  916. plexora-0.0.23/tests/test_view_menu.py +0 -155
  917. plexora-0.0.23/tests/test_visium_hd_import.py +0 -293
  918. {plexora-0.0.23 → plexora-0.0.27}/LICENSE +0 -0
  919. {plexora-0.0.23 → plexora-0.0.27}/plexora/__main__.py +0 -0
  920. {plexora-0.0.23 → plexora-0.0.27}/plexora/_transient_locks.py +0 -0
  921. {plexora-0.0.23 → plexora-0.0.27}/plexora/_url.py +0 -0
  922. {plexora-0.0.23 → plexora-0.0.27}/plexora/askpass.py +0 -0
  923. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/dist/354_bundle.js +0 -0
  924. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/dist/354_bundle.js.LICENSE.txt +0 -0
  925. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/dist/418_bundle.js +0 -0
  926. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/dist/418_bundle.js.LICENSE.txt +0 -0
  927. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/dist/693b935cb1f907814be9c6199a68c217.svg +0 -0
  928. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/dist/713c134ff47cd328a5b711526f151082.svg +0 -0
  929. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/dist/770_bundle.js +0 -0
  930. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/dist/ff743f408972e0e96ca9153ed5ae4c83.svg +0 -0
  931. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/dist/vendor_bundle.js.LICENSE.txt +0 -0
  932. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/dist/vendors-node_modules_canvg_lib_index_es_js_bundle.js +0 -0
  933. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/dist/vendors-node_modules_dompurify_dist_purify_es_mjs_bundle.js +0 -0
  934. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/dist/vendors-node_modules_html2canvas_dist_html2canvas_js_bundle.js +0 -0
  935. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/LICENSE.txt +0 -0
  936. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/changelog.txt +0 -0
  937. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/.gitattributes +0 -0
  938. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/LICENSE.txt +0 -0
  939. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/Toolbar.png +0 -0
  940. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/fullpage.psd +0 -0
  941. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/home.psd +0 -0
  942. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/next.psd +0 -0
  943. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/previous.psd +0 -0
  944. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/rotateleft.psd +0 -0
  945. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/rotateright.psd +0 -0
  946. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/Photoshop/zoom.psd +0 -0
  947. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/README.md +0 -0
  948. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/fullpage_grouphover.png +0 -0
  949. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/fullpage_hover.png +0 -0
  950. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/fullpage_pressed.png +0 -0
  951. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/fullpage_rest.png +0 -0
  952. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/home_grouphover.png +0 -0
  953. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/home_hover.png +0 -0
  954. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/home_pressed.png +0 -0
  955. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/home_rest.png +0 -0
  956. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/next_grouphover.png +0 -0
  957. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/next_hover.png +0 -0
  958. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/next_pressed.png +0 -0
  959. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/next_rest.png +0 -0
  960. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/previous_grouphover.png +0 -0
  961. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/previous_hover.png +0 -0
  962. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/previous_pressed.png +0 -0
  963. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/previous_rest.png +0 -0
  964. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateleft_grouphover.png +0 -0
  965. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateleft_hover.png +0 -0
  966. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateleft_pressed.png +0 -0
  967. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateleft_rest.png +0 -0
  968. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateright_grouphover.png +0 -0
  969. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateright_hover.png +0 -0
  970. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateright_pressed.png +0 -0
  971. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/rotateright_rest.png +0 -0
  972. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomin_grouphover.png +0 -0
  973. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomin_hover.png +0 -0
  974. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomin_pressed.png +0 -0
  975. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomin_rest.png +0 -0
  976. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomout_grouphover.png +0 -0
  977. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomout_hover.png +0 -0
  978. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomout_pressed.png +0 -0
  979. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-flat-toolbar-icons-master/images/zoomout_rest.png +0 -0
  980. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/external/openseadragon-bin-2.4.0/openseadragon-scalebar.js +0 -0
  981. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/css/import.css +0 -0
  982. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/css/tokens.css +0 -0
  983. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/img/apple-touch-icon.png +0 -0
  984. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/img/favicon.ico +0 -0
  985. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/img/logo.ai +0 -0
  986. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/img/logo.svg +0 -0
  987. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/img/logo_with_text.ai +0 -0
  988. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/img/logo_with_text.svg +0 -0
  989. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/services/carryOver.js +0 -0
  990. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/services/dataLocation.js +0 -0
  991. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/services/datasetContext.js +0 -0
  992. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/services/failureMessage.js +0 -0
  993. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/services/glRenderer.js +0 -0
  994. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/services/keyboardShortcuts.js +0 -0
  995. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/services/logTerminal.js +0 -0
  996. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/services/pageBoot.js +0 -0
  997. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/services/passVariablesToFrontend.js +0 -0
  998. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/services/pathPicker.js +0 -0
  999. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/services/placePicker.js +0 -0
  1000. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/services/remoteGlobe.js +0 -0
  1001. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/services/remoteState.js +0 -0
  1002. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/services/renderClipboard.js +0 -0
  1003. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/services/simpleEventHandler.js +0 -0
  1004. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/services/viewerLoader.js +0 -0
  1005. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/vendor.js +0 -0
  1006. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/views/brightfieldAdjust.js +0 -0
  1007. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/views/channelList.js +0 -0
  1008. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/views/channelNamesUpload.js +0 -0
  1009. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/views/colorSwatchPicker.js +0 -0
  1010. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/views/coordinateField.js +0 -0
  1011. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/views/dataSourceField.js +0 -0
  1012. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/views/datasetPicker.js +0 -0
  1013. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/views/fileSourceRow.js +0 -0
  1014. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/views/jobProgress.js +0 -0
  1015. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/views/layerSections.js +0 -0
  1016. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/views/layerStack.js +0 -0
  1017. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/views/panCursor.js +0 -0
  1018. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/views/popoverPortal.js +0 -0
  1019. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/views/rainbow.js +0 -0
  1020. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/views/requirementsModal.js +0 -0
  1021. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/views/scaleCalibration.js +0 -0
  1022. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/views/tableProgress.js +0 -0
  1023. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/js/workers/tileDecoder.js +0 -0
  1024. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/shaders/frag.glsl +0 -0
  1025. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/src/shaders/vert.glsl +0 -0
  1026. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/templates/_fragment.html +0 -0
  1027. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/templates/_scale_calibration.html +0 -0
  1028. {plexora-0.0.23 → plexora-0.0.27}/plexora/client/templates/_scale_calibration_float.html +0 -0
  1029. {plexora-0.0.23 → plexora-0.0.27}/plexora/notebook_env.py +0 -0
  1030. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/__init__.py +0 -0
  1031. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/cell_explorer/server/__init__.py +0 -0
  1032. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/cell_explorer/server/routes.py +0 -0
  1033. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/cell_explorer/server/state.py +0 -0
  1034. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/cell_explorer/server/values.py +0 -0
  1035. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/cell_explorer/server/variables.py +0 -0
  1036. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/cell_explorer/static/cellExplorerApi.js +0 -0
  1037. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/cell_explorer/static/cellExplorerColors.js +0 -0
  1038. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/cell_explorer/static/cellExplorerContinuous.js +0 -0
  1039. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/cell_explorer/static/cellExplorerFigureBridge.js +0 -0
  1040. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/cell_explorer/static/cellExplorerLegend.js +0 -0
  1041. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/cell_explorer/static/cellExplorerRoiBridge.js +0 -0
  1042. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/cell_explorer/static/cellExplorerState.js +0 -0
  1043. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/cell_explorer/static/cell_explorer.css +0 -0
  1044. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/cell_explorer/templates/cell_explorer/panel.html +0 -0
  1045. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/server/__init__.py +0 -0
  1046. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/server/captures.py +0 -0
  1047. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/server/export.py +0 -0
  1048. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/server/operations.py +0 -0
  1049. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/server/pixels.py +0 -0
  1050. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/server/repository.py +0 -0
  1051. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/server/routes.py +0 -0
  1052. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/server/shapegeom.py +0 -0
  1053. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/server/sources.py +0 -0
  1054. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/server/strokegeom.py +0 -0
  1055. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/server/textmetrics.py +0 -0
  1056. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureActions.js +0 -0
  1057. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureBuilderApi.js +0 -0
  1058. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureCaptureBin.js +0 -0
  1059. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureCaptureBinGrid.js +0 -0
  1060. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureChoiceField.js +0 -0
  1061. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureColorField.js +0 -0
  1062. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureConfirm.js +0 -0
  1063. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureContextMenu.js +0 -0
  1064. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureDestinationPicker.js +0 -0
  1065. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureDocumentState.js +0 -0
  1066. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureLineDefs.js +0 -0
  1067. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureLinePanel.js +0 -0
  1068. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figurePointEditor.js +0 -0
  1069. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureRichText.js +0 -0
  1070. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureShapeDefs.js +0 -0
  1071. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureShapeDrawing.js +0 -0
  1072. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureShapeGeometry.js +0 -0
  1073. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureShapePanel.js +0 -0
  1074. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureStrokeGeometry.js +0 -0
  1075. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureTextEditor.js +0 -0
  1076. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureTextPanel.js +0 -0
  1077. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureThumbnail.js +0 -0
  1078. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/static/figureViewOptions.js +0 -0
  1079. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/templates/figure_builder/captures.html +0 -0
  1080. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/templates/figure_builder/library.html +0 -0
  1081. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/figure_builder/templates/figure_builder/workspace_body.html +0 -0
  1082. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/gating/server/__init__.py +0 -0
  1083. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/gating/server/database.py +0 -0
  1084. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/gating/templates/gating/legacy.html +0 -0
  1085. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/roi/server/__init__.py +0 -0
  1086. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/roi/server/adapters.py +0 -0
  1087. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/roi/server/geojson.py +0 -0
  1088. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/roi/server/geometry.py +0 -0
  1089. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/roi/server/mapping.py +0 -0
  1090. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/roi/server/operations.py +0 -0
  1091. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/roi/server/repository.py +0 -0
  1092. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/roi/server/routes.py +0 -0
  1093. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/roi/server/schema.py +0 -0
  1094. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/roi/server/tableops.py +0 -0
  1095. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/roi/static/roi.css +0 -0
  1096. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/roi/static/roiFigureBridge.js +0 -0
  1097. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/roi/static/roiGeometry.js +0 -0
  1098. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/roi/static/roiRenderer.js +0 -0
  1099. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/roi/static/roiTree.js +0 -0
  1100. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/roi/templates/roi/panel.html +0 -0
  1101. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/transcripts/server/__init__.py +0 -0
  1102. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/transcripts/server/xenium.py +0 -0
  1103. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/transcripts/static/transcriptsApi.js +0 -0
  1104. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/visium_hd/server/__init__.py +0 -0
  1105. {plexora-0.0.23 → plexora-0.0.27}/plexora/plugins/visium_hd/server/tenx.py +0 -0
  1106. {plexora-0.0.23 → plexora-0.0.27}/plexora/proxy.py +0 -0
  1107. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/models/adapters/classify.py +0 -0
  1108. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/models/adapters/flat_table.py +0 -0
  1109. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/models/adapters/memory_adapter.py +0 -0
  1110. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/models/consistency.py +0 -0
  1111. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/models/datasets.py +0 -0
  1112. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/models/nodes.py +0 -0
  1113. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/models/remotes.py +0 -0
  1114. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/models/secret_store.py +0 -0
  1115. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/providers/memory.py +0 -0
  1116. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/providers/wire.py +0 -0
  1117. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/routes/dataset_routes.py +0 -0
  1118. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/routes/transfer_routes.py +0 -0
  1119. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/utils/addHEColumns.py +0 -0
  1120. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/utils/channel_file.py +0 -0
  1121. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/utils/colormaps.py +0 -0
  1122. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/utils/dir_listing.py +0 -0
  1123. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/utils/file_transfer.py +0 -0
  1124. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/utils/fullConversion.py +0 -0
  1125. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/utils/memory_pyramid.py +0 -0
  1126. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/utils/ngff_transform.py +0 -0
  1127. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/utils/pre_normalization.py +0 -0
  1128. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/utils/smallestenclosingcircle.py +0 -0
  1129. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/utils/spatial_scene.py +0 -0
  1130. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/utils/tiff_series.py +0 -0
  1131. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/utils/tiffsurgeon.py +0 -0
  1132. {plexora-0.0.23 → plexora-0.0.27}/plexora/server/utils/xenium_cells.py +0 -0
  1133. {plexora-0.0.23 → plexora-0.0.27}/plexora/test.py +0 -0
  1134. {plexora-0.0.23 → plexora-0.0.27}/plexora.egg-info/dependency_links.txt +0 -0
  1135. {plexora-0.0.23 → plexora-0.0.27}/plexora.egg-info/top_level.txt +0 -0
  1136. {plexora-0.0.23 → plexora-0.0.27}/tests/test_anndata_adapter.py +0 -0
  1137. {plexora-0.0.23 → plexora-0.0.27}/tests/test_api_dataset.py +0 -0
  1138. {plexora-0.0.23 → plexora-0.0.27}/tests/test_api_store.py +0 -0
  1139. {plexora-0.0.23 → plexora-0.0.27}/tests/test_app_router.py +0 -0
  1140. {plexora-0.0.23 → plexora-0.0.27}/tests/test_auth_token.py +0 -0
  1141. {plexora-0.0.23 → plexora-0.0.27}/tests/test_blank_frame.py +0 -0
  1142. {plexora-0.0.23 → plexora-0.0.27}/tests/test_brightfield_detection.py +0 -0
  1143. {plexora-0.0.23 → plexora-0.0.27}/tests/test_brightfield_pipeline.py +0 -0
  1144. {plexora-0.0.23 → plexora-0.0.27}/tests/test_brightfield_reader.py +0 -0
  1145. {plexora-0.0.23 → plexora-0.0.27}/tests/test_brightfield_routes.py +0 -0
  1146. {plexora-0.0.23 → plexora-0.0.27}/tests/test_browse_routes.py +0 -0
  1147. {plexora-0.0.23 → plexora-0.0.27}/tests/test_carry_over.py +0 -0
  1148. {plexora-0.0.23 → plexora-0.0.27}/tests/test_cell_color_layer.py +0 -0
  1149. {plexora-0.0.23 → plexora-0.0.27}/tests/test_centroid_tiles.py +0 -0
  1150. {plexora-0.0.23 → plexora-0.0.27}/tests/test_channel_names_modal.py +0 -0
  1151. {plexora-0.0.23 → plexora-0.0.27}/tests/test_channel_names_sidecar.py +0 -0
  1152. {plexora-0.0.23 → plexora-0.0.27}/tests/test_channel_names_upload.py +0 -0
  1153. {plexora-0.0.23 → plexora-0.0.27}/tests/test_channel_overview.py +0 -0
  1154. {plexora-0.0.23 → plexora-0.0.27}/tests/test_channel_rename_state.py +0 -0
  1155. {plexora-0.0.23 → plexora-0.0.27}/tests/test_classify_columns.py +0 -0
  1156. {plexora-0.0.23 → plexora-0.0.27}/tests/test_colormaps.py +0 -0
  1157. {plexora-0.0.23 → plexora-0.0.27}/tests/test_column_classifier_css.py +0 -0
  1158. {plexora-0.0.23 → plexora-0.0.27}/tests/test_config_store.py +0 -0
  1159. {plexora-0.0.23 → plexora-0.0.27}/tests/test_consistency.py +0 -0
  1160. {plexora-0.0.23 → plexora-0.0.27}/tests/test_csv_adapter.py +0 -0
  1161. {plexora-0.0.23 → plexora-0.0.27}/tests/test_data_location.py +0 -0
  1162. {plexora-0.0.23 → plexora-0.0.27}/tests/test_database_model.py +0 -0
  1163. {plexora-0.0.23 → plexora-0.0.27}/tests/test_datalayer_requests.py +0 -0
  1164. {plexora-0.0.23 → plexora-0.0.27}/tests/test_dataset_routes.py +0 -0
  1165. {plexora-0.0.23 → plexora-0.0.27}/tests/test_datasets_api.py +0 -0
  1166. {plexora-0.0.23 → plexora-0.0.27}/tests/test_datasets_api_on_a_node.py +0 -0
  1167. {plexora-0.0.23 → plexora-0.0.27}/tests/test_datasets_registry.py +0 -0
  1168. {plexora-0.0.23 → plexora-0.0.27}/tests/test_derive_anndata_channel_names.py +0 -0
  1169. {plexora-0.0.23 → plexora-0.0.27}/tests/test_detect_data_type.py +0 -0
  1170. {plexora-0.0.23 → plexora-0.0.27}/tests/test_dicom_assembly.py +0 -0
  1171. {plexora-0.0.23 → plexora-0.0.27}/tests/test_dicom_detection.py +0 -0
  1172. {plexora-0.0.23 → plexora-0.0.27}/tests/test_dicom_pyramid.py +0 -0
  1173. {plexora-0.0.23 → plexora-0.0.27}/tests/test_dicom_registration.py +0 -0
  1174. {plexora-0.0.23 → plexora-0.0.27}/tests/test_dicom_routes.py +0 -0
  1175. {plexora-0.0.23 → plexora-0.0.27}/tests/test_file_location.py +0 -0
  1176. {plexora-0.0.23 → plexora-0.0.27}/tests/test_file_transfer_node.py +0 -0
  1177. {plexora-0.0.23 → plexora-0.0.27}/tests/test_hd_slider_domain.py +0 -0
  1178. {plexora-0.0.23 → plexora-0.0.27}/tests/test_home_landing.py +0 -0
  1179. {plexora-0.0.23 → plexora-0.0.27}/tests/test_icon_names.py +0 -0
  1180. {plexora-0.0.23 → plexora-0.0.27}/tests/test_image_status.py +0 -0
  1181. {plexora-0.0.23 → plexora-0.0.27}/tests/test_import_costs_nothing.py +0 -0
  1182. {plexora-0.0.23 → plexora-0.0.27}/tests/test_import_sample_routes.py +0 -0
  1183. {plexora-0.0.23 → plexora-0.0.27}/tests/test_jupyter_viewer.py +0 -0
  1184. {plexora-0.0.23 → plexora-0.0.27}/tests/test_label_outlines.py +0 -0
  1185. {plexora-0.0.23 → plexora-0.0.27}/tests/test_label_region.py +0 -0
  1186. {plexora-0.0.23 → plexora-0.0.27}/tests/test_label_tile_lifecycle.py +0 -0
  1187. {plexora-0.0.23 → plexora-0.0.27}/tests/test_launch_state.py +0 -0
  1188. {plexora-0.0.23 → plexora-0.0.27}/tests/test_layer_channel_panel.py +0 -0
  1189. {plexora-0.0.23 → plexora-0.0.27}/tests/test_layer_draw.py +0 -0
  1190. {plexora-0.0.23 → plexora-0.0.27}/tests/test_layer_jobs.py +0 -0
  1191. {plexora-0.0.23 → plexora-0.0.27}/tests/test_layer_spec.py +0 -0
  1192. {plexora-0.0.23 → plexora-0.0.27}/tests/test_layer_state.py +0 -0
  1193. {plexora-0.0.23 → plexora-0.0.27}/tests/test_layer_transform.py +0 -0
  1194. {plexora-0.0.23 → plexora-0.0.27}/tests/test_layer_visibility.py +0 -0
  1195. {plexora-0.0.23 → plexora-0.0.27}/tests/test_marker_split.py +0 -0
  1196. {plexora-0.0.23 → plexora-0.0.27}/tests/test_mask_without_table.py +0 -0
  1197. {plexora-0.0.23 → plexora-0.0.27}/tests/test_memory_adapter.py +0 -0
  1198. {plexora-0.0.23 → plexora-0.0.27}/tests/test_memory_datasource.py +0 -0
  1199. {plexora-0.0.23 → plexora-0.0.27}/tests/test_memory_pyramid.py +0 -0
  1200. {plexora-0.0.23 → plexora-0.0.27}/tests/test_metadata_columns.py +0 -0
  1201. {plexora-0.0.23 → plexora-0.0.27}/tests/test_nav_shortcuts.py +0 -0
  1202. {plexora-0.0.23 → plexora-0.0.27}/tests/test_node_direct_routing.py +0 -0
  1203. {plexora-0.0.23 → plexora-0.0.27}/tests/test_node_disconnect.py +0 -0
  1204. {plexora-0.0.23 → plexora-0.0.27}/tests/test_node_dynamic.py +0 -0
  1205. {plexora-0.0.23 → plexora-0.0.27}/tests/test_node_mask_status.py +0 -0
  1206. {plexora-0.0.23 → plexora-0.0.27}/tests/test_node_reconnect.py +0 -0
  1207. {plexora-0.0.23 → plexora-0.0.27}/tests/test_node_routes.py +0 -0
  1208. {plexora-0.0.23 → plexora-0.0.27}/tests/test_node_table.py +0 -0
  1209. {plexora-0.0.23 → plexora-0.0.27}/tests/test_node_warm_and_cache.py +0 -0
  1210. {plexora-0.0.23 → plexora-0.0.27}/tests/test_notebook_env.py +0 -0
  1211. {plexora-0.0.23 → plexora-0.0.27}/tests/test_notebook_mode.py +0 -0
  1212. {plexora-0.0.23 → plexora-0.0.27}/tests/test_ome_zarr_reader.py +0 -0
  1213. {plexora-0.0.23 → plexora-0.0.27}/tests/test_optional_segmentation.py +0 -0
  1214. {plexora-0.0.23 → plexora-0.0.27}/tests/test_page_assets.py +0 -0
  1215. {plexora-0.0.23 → plexora-0.0.27}/tests/test_page_routes.py +0 -0
  1216. {plexora-0.0.23 → plexora-0.0.27}/tests/test_parquet_tables.py +0 -0
  1217. {plexora-0.0.23 → plexora-0.0.27}/tests/test_path_picker.py +0 -0
  1218. {plexora-0.0.23 → plexora-0.0.27}/tests/test_pixel_size.py +0 -0
  1219. {plexora-0.0.23 → plexora-0.0.27}/tests/test_plugin_css_boundary.py +0 -0
  1220. {plexora-0.0.23 → plexora-0.0.27}/tests/test_plugin_layers.py +0 -0
  1221. {plexora-0.0.23 → plexora-0.0.27}/tests/test_popover_portal.py +0 -0
  1222. {plexora-0.0.23 → plexora-0.0.27}/tests/test_prime_hot_code.py +0 -0
  1223. {plexora-0.0.23 → plexora-0.0.27}/tests/test_project_edit_routes.py +0 -0
  1224. {plexora-0.0.23 → plexora-0.0.27}/tests/test_project_layer_routes.py +0 -0
  1225. {plexora-0.0.23 → plexora-0.0.27}/tests/test_project_record.py +0 -0
  1226. {plexora-0.0.23 → plexora-0.0.27}/tests/test_recipes.py +0 -0
  1227. {plexora-0.0.23 → plexora-0.0.27}/tests/test_reconnect.py +0 -0
  1228. {plexora-0.0.23 → plexora-0.0.27}/tests/test_refresh_dataset.py +0 -0
  1229. {plexora-0.0.23 → plexora-0.0.27}/tests/test_register_anndata_datasource.py +0 -0
  1230. {plexora-0.0.23 → plexora-0.0.27}/tests/test_register_image_datasource.py +0 -0
  1231. {plexora-0.0.23 → plexora-0.0.27}/tests/test_register_zarr_image_datasource.py +0 -0
  1232. {plexora-0.0.23 → plexora-0.0.27}/tests/test_remote_globe.py +0 -0
  1233. {plexora-0.0.23 → plexora-0.0.27}/tests/test_remote_health.py +0 -0
  1234. {plexora-0.0.23 → plexora-0.0.27}/tests/test_remote_state.py +0 -0
  1235. {plexora-0.0.23 → plexora-0.0.27}/tests/test_rename_channels.py +0 -0
  1236. {plexora-0.0.23 → plexora-0.0.27}/tests/test_rename_channels_json.py +0 -0
  1237. {plexora-0.0.23 → plexora-0.0.27}/tests/test_render_clipboard.py +0 -0
  1238. {plexora-0.0.23 → plexora-0.0.27}/tests/test_requirements_routes.py +0 -0
  1239. {plexora-0.0.23 → plexora-0.0.27}/tests/test_segmentation_mapping.py +0 -0
  1240. {plexora-0.0.23 → plexora-0.0.27}/tests/test_segmentation_mode_routes.py +0 -0
  1241. {plexora-0.0.23 → plexora-0.0.27}/tests/test_segmentation_pyramid.py +0 -0
  1242. {plexora-0.0.23 → plexora-0.0.27}/tests/test_session_walltime.py +0 -0
  1243. {plexora-0.0.23 → plexora-0.0.27}/tests/test_settings_page.py +0 -0
  1244. {plexora-0.0.23 → plexora-0.0.27}/tests/test_settings_remotes_page.py +0 -0
  1245. {plexora-0.0.23 → plexora-0.0.27}/tests/test_shared_roots.py +0 -0
  1246. {plexora-0.0.23 → plexora-0.0.27}/tests/test_sidebar_scoping.py +0 -0
  1247. {plexora-0.0.23 → plexora-0.0.27}/tests/test_spatial_scene.py +0 -0
  1248. {plexora-0.0.23 → plexora-0.0.27}/tests/test_spatialdata_adapter.py +0 -0
  1249. {plexora-0.0.23 → plexora-0.0.27}/tests/test_spatialdata_image_import.py +0 -0
  1250. {plexora-0.0.23 → plexora-0.0.27}/tests/test_staged_progress.py +0 -0
  1251. {plexora-0.0.23 → plexora-0.0.27}/tests/test_table_progress.py +0 -0
  1252. {plexora-0.0.23 → plexora-0.0.27}/tests/test_tenx_matrix.py +0 -0
  1253. {plexora-0.0.23 → plexora-0.0.27}/tests/test_tiff_hyperstack.py +0 -0
  1254. {plexora-0.0.23 → plexora-0.0.27}/tests/test_tile_url.py +0 -0
  1255. {plexora-0.0.23 → plexora-0.0.27}/tests/test_tool_assets.py +0 -0
  1256. {plexora-0.0.23 → plexora-0.0.27}/tests/test_tool_coexistence.py +0 -0
  1257. {plexora-0.0.23 → plexora-0.0.27}/tests/test_tool_switching.py +0 -0
  1258. {plexora-0.0.23 → plexora-0.0.27}/tests/test_transcript_tiles.py +0 -0
  1259. {plexora-0.0.23 → plexora-0.0.27}/tests/test_transfer_routes.py +0 -0
  1260. {plexora-0.0.23 → plexora-0.0.27}/tests/test_unreachable_node.py +0 -0
  1261. {plexora-0.0.23 → plexora-0.0.27}/tests/test_url_helpers.py +0 -0
  1262. {plexora-0.0.23 → plexora-0.0.27}/tests/test_viewer_error_state.py +0 -0
  1263. {plexora-0.0.23 → plexora-0.0.27}/tests/test_viewer_loader.py +0 -0
  1264. {plexora-0.0.23 → plexora-0.0.27}/tests/test_wide_features.py +0 -0
  1265. {plexora-0.0.23 → plexora-0.0.27}/tests/test_xenium_cells.py +0 -0
  1266. {plexora-0.0.23 → plexora-0.0.27}/tests/test_xenium_focus.py +0 -0
  1267. {plexora-0.0.23 → plexora-0.0.27}/tests/test_zarr_write_retry.py +0 -0
@@ -0,0 +1,25 @@
1
+ recursive-include plexora/client/templates *.html
2
+ recursive-include plexora/client/dist *
3
+ recursive-include plexora/client/src/css *.css
4
+ recursive-include plexora/client/src/img *
5
+ recursive-include plexora/client/src/js *.js
6
+ recursive-include plexora/client/src/shaders *.glsl
7
+ recursive-include plexora/client/external *
8
+ recursive-include plexora/plugins *.html
9
+ # Per plugin rather than a plugins/*/static glob: MANIFEST.in has no such glob,
10
+ # so every bundled plugin's assets need a line of their own here or they are
11
+ # simply absent from an sdist -- which builds and installs fine, then serves a
12
+ # tool with no client.
13
+ recursive-include plexora/plugins/cell_explorer/static *
14
+ recursive-include plexora/plugins/figure_builder/static *
15
+ recursive-include plexora/plugins/gating/static *
16
+ recursive-include plexora/plugins/roi/static *
17
+ # The telemetry Worker (Cloudflare) is deployed separately, never shipped.
18
+ prune backend
19
+ # The licence service Worker likewise: deployed separately, never shipped --
20
+ # and its tools/ must never ride along in an sdist.
21
+ prune licensing
22
+ # The documentation site and its generator are built from the repository and
23
+ # published to GitHub Pages; neither is part of the package.
24
+ prune website
25
+ prune tools
@@ -0,0 +1,209 @@
1
+ Metadata-Version: 2.4
2
+ Name: plexora
3
+ Version: 0.0.27
4
+ Summary: OpenSeadragon-based cellular image viewing and analysis tool.
5
+ License-Expression: LicenseRef-Plexora-Academic-1.0
6
+ Requires-Python: <3.14,>=3.12
7
+ Description-Content-Type: text/markdown
8
+ License-File: LICENSE
9
+ Requires-Dist: aiohttp>=3.9
10
+ Requires-Dist: anndata>=0.10
11
+ Requires-Dist: cryptography>=42
12
+ Requires-Dist: Flask>=3.1
13
+ Requires-Dist: fsspec>=2024.12
14
+ Requires-Dist: h5py>=3.16.0
15
+ Requires-Dist: imagecodecs
16
+ Requires-Dist: itsdangerous>=2.2
17
+ Requires-Dist: Jinja2>=3.1
18
+ Requires-Dist: numba>=0.61
19
+ Requires-Dist: numpy>=2.0
20
+ Requires-Dist: ome-types>=0.6.3
21
+ Requires-Dist: opencv-python-headless>=5.0.0.93
22
+ Requires-Dist: openpyxl>=3.1
23
+ Requires-Dist: orjson>=3.11
24
+ Requires-Dist: pandas>=3.0.5
25
+ Requires-Dist: Pillow>=10.4
26
+ Requires-Dist: platformdirs>=4
27
+ Requires-Dist: polars>=1.43
28
+ Requires-Dist: pydantic<2.14,>=2.13
29
+ Requires-Dist: reportlab>=5.0.1
30
+ Requires-Dist: s3fs>=2024.12
31
+ Requires-Dist: scikit-image
32
+ Requires-Dist: scikit-learn>=1.9
33
+ Requires-Dist: scipy
34
+ Requires-Dist: shapely>=2.1.2
35
+ Requires-Dist: spatialdata>=0.8.0
36
+ Requires-Dist: threadpoolctl>=3.6.0
37
+ Requires-Dist: tifffile>=2026.7.31
38
+ Requires-Dist: urllib3>=2.0
39
+ Requires-Dist: waitress
40
+ Requires-Dist: Werkzeug>=3.1
41
+ Requires-Dist: zarr>=3
42
+ Provides-Extra: jupyter
43
+ Requires-Dist: ipython; extra == "jupyter"
44
+ Requires-Dist: jupyter-server-proxy; extra == "jupyter"
45
+ Provides-Extra: dev
46
+ Requires-Dist: pytest; extra == "dev"
47
+ Requires-Dist: pytest-randomly>=4.1.0; extra == "dev"
48
+ Provides-Extra: spatial
49
+ Requires-Dist: pyarrow>=14; extra == "spatial"
50
+ Provides-Extra: remote
51
+ Requires-Dist: gcsfs>=2024.12; extra == "remote"
52
+ Requires-Dist: adlfs>=2024.12; extra == "remote"
53
+ Requires-Dist: wsidicom>=0.35; extra == "remote"
54
+ Requires-Dist: pydicom>=3; extra == "remote"
55
+ Requires-Dist: universal-pathlib>=0.2; extra == "remote"
56
+ Provides-Extra: wsi
57
+ Requires-Dist: openslide-python>=1.3; extra == "wsi"
58
+ Requires-Dist: openslide-bin>=4.0; extra == "wsi"
59
+ Requires-Dist: wsidicom>=0.35; extra == "wsi"
60
+ Requires-Dist: pydicom>=3; extra == "wsi"
61
+ Provides-Extra: ai
62
+ Requires-Dist: mcp<3,>=2.2; extra == "ai"
63
+ Requires-Dist: pyyaml>=6; extra == "ai"
64
+ Dynamic: license-file
65
+
66
+ # Plexora
67
+
68
+ ![](./plexora/client/src/img/logo_with_text.svg)
69
+
70
+ Plexora is a viewer for multiplexed imaging and spatial transcriptomics. It
71
+ opens large images where they are, without converting or copying them, draws
72
+ segmentation masks and cell tables over them, and runs on a laptop, in a
73
+ notebook, on a remote workstation or on an HPC cluster.
74
+
75
+ **Documentation: https://nirmallab.github.io/plexora/**
76
+
77
+ ![The Plexora viewer showing a multiplexed tissue image](./website/public/screenshots/home/viewer.webp)
78
+
79
+ ## Install
80
+
81
+ ```bash
82
+ pip install plexora
83
+ plexora
84
+ ```
85
+
86
+ `plexora` starts the viewer and opens it in your browser. Python 3.12 or 3.13
87
+ is required. A desktop app for macOS, Windows and Linux is on the
88
+ [releases page](https://github.com/nirmallab/plexora/releases). See
89
+ [Installation](https://nirmallab.github.io/plexora/docs/getting-started/installation/).
90
+
91
+ ## Quick start
92
+
93
+ In the app, choose **File → Import Sample…** and pick an image, a folder of
94
+ files, or a Xenium or Visium run. From Python:
95
+
96
+ ```python
97
+ import plexora
98
+
99
+ name = plexora.import_sample("slide.ome.tif", "slide_mask.tif", "cells.csv", wait=True)
100
+ plexora.view(name) # in a notebook, shows the viewer inline
101
+ ```
102
+
103
+ More in the [quick start](https://nirmallab.github.io/plexora/docs/getting-started/quick-start/).
104
+
105
+ ## What it reads
106
+
107
+ - Multiplexed images: OME-TIFF, TIFF, QPTIFF, OME-Zarr (local, `https://` or `s3://`)
108
+ - Brightfield whole-slide images: SVS, NDPI, SCN, BIF, MRXS, DICOM
109
+ - 10x Genomics Xenium, Visium and Visium HD output folders
110
+ - SpatialData stores and AnnData tables; CSV, TSV and Parquet cell tables
111
+ - Segmentation masks (label images) and cell boundary polygons
112
+
113
+ The full list is in [Supported formats](https://nirmallab.github.io/plexora/docs/reference/supported-formats/).
114
+
115
+ ## Where to go next
116
+
117
+ | I want to | Read |
118
+ | --- | --- |
119
+ | Use the viewer and its tools | [Viewer](https://nirmallab.github.io/plexora/docs/viewer/navigation/), [Tools](https://nirmallab.github.io/plexora/docs/plugins/) |
120
+ | Script it from Python or a notebook | [Python](https://nirmallab.github.io/plexora/docs/python/), [Notebooks](https://nirmallab.github.io/plexora/docs/notebooks/) |
121
+ | Look at data on a remote machine or cluster | [Remote and HPC](https://nirmallab.github.io/plexora/docs/remote/) |
122
+ | Write a plugin | [Plugin development](https://nirmallab.github.io/plexora/docs/plugin-development/) |
123
+ | Look up a function or command | [Python API](https://nirmallab.github.io/plexora/docs/python-api/), [Command line](https://nirmallab.github.io/plexora/docs/cli/) |
124
+
125
+ ## Developing Plexora
126
+
127
+ ```bash
128
+ git clone https://github.com/nirmallab/plexora.git
129
+ cd plexora
130
+ pip install -e ".[dev]"
131
+ python -m pytest -q -p no:randomly
132
+ ```
133
+
134
+ See [Development setup](https://nirmallab.github.io/plexora/docs/contributing/development-setup/)
135
+ and, for the documentation site in `website/`, [CONTRIBUTING_DOCS.md](./CONTRIBUTING_DOCS.md).
136
+ Engineering notes live in [docs/internal/](./docs/internal/).
137
+
138
+ ## Usage data
139
+
140
+ Plexora can send **anonymous usage counts** -- which features and plugins are
141
+ used, how long tiles take to draw, which kinds of errors occur -- so we know
142
+ what to improve. It never sends file, project, marker or gene names, cell
143
+ data, coordinates, usernames, machine names, paths, prompts or anything typed
144
+ into a tool; every field it may send is on an allowlist
145
+ (`plexora/telemetry/schema.py`). Everything is queued on this machine first,
146
+ nothing in Plexora waits for it, and it works air-gapped exactly as before.
147
+
148
+ It is on by default and a notice says so the first time. Any one of these turns
149
+ it off:
150
+
151
+ ```bash
152
+ plexora telemetry off # or: Settings > Usage data
153
+ export DO_NOT_TRACK=1 # honoured everywhere
154
+ export PLEXORA_TELEMETRY=off
155
+ ```
156
+
157
+ `plexora telemetry preview` prints exactly what the next upload would contain,
158
+ and `plexora telemetry status` says which of the above is in force.
159
+ [docs/TELEMETRY.md](./docs/TELEMETRY.md) has the details.
160
+
161
+ ## Free and Paid
162
+
163
+ **Free** is everything described above: every image, table and modality, every
164
+ tool's manual features, remote, HPC and notebook viewing, and export. It needs no
165
+ account, no activation and no network, and it never asks.
166
+
167
+ **Paid** adds AI features: guided gating sessions an agent runs with you, and
168
+ the evidence and analysis tools it uses. Activate a seat key or install an
169
+ offline licence file in Settings > License, or from a terminal:
170
+
171
+ ```bash
172
+ plexora license status
173
+ plexora license activate PLEX-XXXX-XXXX-XXXX-XXXX # this computer
174
+ plexora license activate PLEX-XXXX-XXXX-XXXX-XXXX --cluster # a whole HPC cluster, once, from a login node
175
+ plexora license install lab.plexora # an offline licence file
176
+ plexora license trial # 30 days of Paid
177
+ ```
178
+
179
+ A licence check sends the licence certificate and a hash that identifies the
180
+ environment. It never sends your data, file names, machine names or anything
181
+ about what you are looking at. When a licence ends, everything Free keeps
182
+ working, and every gate, ROI, figure and export you made, with or without AI,
183
+ stays yours and editable. AI model providers your agent uses bill you
184
+ separately. [docs/LICENSING.md](./docs/LICENSING.md) has the details.
185
+
186
+ ## License
187
+
188
+ Plexora is released under the **Plexora Academic License 1.0** (see [LICENSE](./LICENSE)).
189
+ It is **not** an open source license. In short:
190
+
191
+ | | |
192
+ |---|---|
193
+ | Academic research, teaching, personal study | ✅ Free |
194
+ | Use by a nonprofit or government research institution | ✅ Free (whatever the funding source) |
195
+ | Redistributing Plexora unmodified, with the license attached | ✅ Allowed |
196
+ | Patching your own copy to fix a bug or a compatibility problem | ✅ Allowed |
197
+ | Publishing a fork, a patched build, or a renamed version | ❌ Not allowed |
198
+ | Commercial use of any kind | ❌ Requires a paid license |
199
+
200
+ **Plugins are a deliberate exception.** Anything you build against the documented
201
+ extension interfaces — the `plexora.plugins` entry point group and the `plexora.api`
202
+ package — is yours. You may distribute and sell your plugin under whatever license
203
+ you like, and you do not need our permission. Extending Plexora through the plugin
204
+ API is the supported way to change what it does; editing its source is not.
205
+
206
+ For a commercial license, contact Ajit Johnson Nirmal <ajitjohnson.n@gmail.com>.
207
+
208
+ Some bundled components carry their own licenses, which are unaffected by the above —
209
+ see section 8 of [LICENSE](./LICENSE).
@@ -0,0 +1,144 @@
1
+ # Plexora
2
+
3
+ ![](./plexora/client/src/img/logo_with_text.svg)
4
+
5
+ Plexora is a viewer for multiplexed imaging and spatial transcriptomics. It
6
+ opens large images where they are, without converting or copying them, draws
7
+ segmentation masks and cell tables over them, and runs on a laptop, in a
8
+ notebook, on a remote workstation or on an HPC cluster.
9
+
10
+ **Documentation: https://nirmallab.github.io/plexora/**
11
+
12
+ ![The Plexora viewer showing a multiplexed tissue image](./website/public/screenshots/home/viewer.webp)
13
+
14
+ ## Install
15
+
16
+ ```bash
17
+ pip install plexora
18
+ plexora
19
+ ```
20
+
21
+ `plexora` starts the viewer and opens it in your browser. Python 3.12 or 3.13
22
+ is required. A desktop app for macOS, Windows and Linux is on the
23
+ [releases page](https://github.com/nirmallab/plexora/releases). See
24
+ [Installation](https://nirmallab.github.io/plexora/docs/getting-started/installation/).
25
+
26
+ ## Quick start
27
+
28
+ In the app, choose **File → Import Sample…** and pick an image, a folder of
29
+ files, or a Xenium or Visium run. From Python:
30
+
31
+ ```python
32
+ import plexora
33
+
34
+ name = plexora.import_sample("slide.ome.tif", "slide_mask.tif", "cells.csv", wait=True)
35
+ plexora.view(name) # in a notebook, shows the viewer inline
36
+ ```
37
+
38
+ More in the [quick start](https://nirmallab.github.io/plexora/docs/getting-started/quick-start/).
39
+
40
+ ## What it reads
41
+
42
+ - Multiplexed images: OME-TIFF, TIFF, QPTIFF, OME-Zarr (local, `https://` or `s3://`)
43
+ - Brightfield whole-slide images: SVS, NDPI, SCN, BIF, MRXS, DICOM
44
+ - 10x Genomics Xenium, Visium and Visium HD output folders
45
+ - SpatialData stores and AnnData tables; CSV, TSV and Parquet cell tables
46
+ - Segmentation masks (label images) and cell boundary polygons
47
+
48
+ The full list is in [Supported formats](https://nirmallab.github.io/plexora/docs/reference/supported-formats/).
49
+
50
+ ## Where to go next
51
+
52
+ | I want to | Read |
53
+ | --- | --- |
54
+ | Use the viewer and its tools | [Viewer](https://nirmallab.github.io/plexora/docs/viewer/navigation/), [Tools](https://nirmallab.github.io/plexora/docs/plugins/) |
55
+ | Script it from Python or a notebook | [Python](https://nirmallab.github.io/plexora/docs/python/), [Notebooks](https://nirmallab.github.io/plexora/docs/notebooks/) |
56
+ | Look at data on a remote machine or cluster | [Remote and HPC](https://nirmallab.github.io/plexora/docs/remote/) |
57
+ | Write a plugin | [Plugin development](https://nirmallab.github.io/plexora/docs/plugin-development/) |
58
+ | Look up a function or command | [Python API](https://nirmallab.github.io/plexora/docs/python-api/), [Command line](https://nirmallab.github.io/plexora/docs/cli/) |
59
+
60
+ ## Developing Plexora
61
+
62
+ ```bash
63
+ git clone https://github.com/nirmallab/plexora.git
64
+ cd plexora
65
+ pip install -e ".[dev]"
66
+ python -m pytest -q -p no:randomly
67
+ ```
68
+
69
+ See [Development setup](https://nirmallab.github.io/plexora/docs/contributing/development-setup/)
70
+ and, for the documentation site in `website/`, [CONTRIBUTING_DOCS.md](./CONTRIBUTING_DOCS.md).
71
+ Engineering notes live in [docs/internal/](./docs/internal/).
72
+
73
+ ## Usage data
74
+
75
+ Plexora can send **anonymous usage counts** -- which features and plugins are
76
+ used, how long tiles take to draw, which kinds of errors occur -- so we know
77
+ what to improve. It never sends file, project, marker or gene names, cell
78
+ data, coordinates, usernames, machine names, paths, prompts or anything typed
79
+ into a tool; every field it may send is on an allowlist
80
+ (`plexora/telemetry/schema.py`). Everything is queued on this machine first,
81
+ nothing in Plexora waits for it, and it works air-gapped exactly as before.
82
+
83
+ It is on by default and a notice says so the first time. Any one of these turns
84
+ it off:
85
+
86
+ ```bash
87
+ plexora telemetry off # or: Settings > Usage data
88
+ export DO_NOT_TRACK=1 # honoured everywhere
89
+ export PLEXORA_TELEMETRY=off
90
+ ```
91
+
92
+ `plexora telemetry preview` prints exactly what the next upload would contain,
93
+ and `plexora telemetry status` says which of the above is in force.
94
+ [docs/TELEMETRY.md](./docs/TELEMETRY.md) has the details.
95
+
96
+ ## Free and Paid
97
+
98
+ **Free** is everything described above: every image, table and modality, every
99
+ tool's manual features, remote, HPC and notebook viewing, and export. It needs no
100
+ account, no activation and no network, and it never asks.
101
+
102
+ **Paid** adds AI features: guided gating sessions an agent runs with you, and
103
+ the evidence and analysis tools it uses. Activate a seat key or install an
104
+ offline licence file in Settings > License, or from a terminal:
105
+
106
+ ```bash
107
+ plexora license status
108
+ plexora license activate PLEX-XXXX-XXXX-XXXX-XXXX # this computer
109
+ plexora license activate PLEX-XXXX-XXXX-XXXX-XXXX --cluster # a whole HPC cluster, once, from a login node
110
+ plexora license install lab.plexora # an offline licence file
111
+ plexora license trial # 30 days of Paid
112
+ ```
113
+
114
+ A licence check sends the licence certificate and a hash that identifies the
115
+ environment. It never sends your data, file names, machine names or anything
116
+ about what you are looking at. When a licence ends, everything Free keeps
117
+ working, and every gate, ROI, figure and export you made, with or without AI,
118
+ stays yours and editable. AI model providers your agent uses bill you
119
+ separately. [docs/LICENSING.md](./docs/LICENSING.md) has the details.
120
+
121
+ ## License
122
+
123
+ Plexora is released under the **Plexora Academic License 1.0** (see [LICENSE](./LICENSE)).
124
+ It is **not** an open source license. In short:
125
+
126
+ | | |
127
+ |---|---|
128
+ | Academic research, teaching, personal study | ✅ Free |
129
+ | Use by a nonprofit or government research institution | ✅ Free (whatever the funding source) |
130
+ | Redistributing Plexora unmodified, with the license attached | ✅ Allowed |
131
+ | Patching your own copy to fix a bug or a compatibility problem | ✅ Allowed |
132
+ | Publishing a fork, a patched build, or a renamed version | ❌ Not allowed |
133
+ | Commercial use of any kind | ❌ Requires a paid license |
134
+
135
+ **Plugins are a deliberate exception.** Anything you build against the documented
136
+ extension interfaces — the `plexora.plugins` entry point group and the `plexora.api`
137
+ package — is yours. You may distribute and sell your plugin under whatever license
138
+ you like, and you do not need our permission. Extending Plexora through the plugin
139
+ API is the supported way to change what it does; editing its source is not.
140
+
141
+ For a commercial license, contact Ajit Johnson Nirmal <ajitjohnson.n@gmail.com>.
142
+
143
+ Some bundled components carry their own licenses, which are unaffected by the above —
144
+ see section 8 of [LICENSE](./LICENSE).