fractal-server 1.2.3a1__tar.gz → 1.2.3a2__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 (130) hide show
  1. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/PKG-INFO +1 -1
  2. fractal_server-1.2.3a2/fractal_server/__init__.py +1 -0
  3. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/api/v1/project.py +1 -1
  4. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/api/v1/task.py +12 -3
  5. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/runner/__init__.py +4 -0
  6. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/pyproject.toml +2 -2
  7. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/setup.py +1 -1
  8. fractal_server-1.2.3a1/fractal_server/__init__.py +0 -1
  9. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/LICENSE +0 -0
  10. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/README.md +0 -0
  11. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/.gitignore +0 -0
  12. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/__main__.py +0 -0
  13. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/alembic.ini +0 -0
  14. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/__init__.py +0 -0
  15. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/api/__init__.py +0 -0
  16. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/api/v1/__init__.py +0 -0
  17. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/api/v1/job.py +0 -0
  18. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/api/v1/workflow.py +0 -0
  19. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/db/__init__.py +0 -0
  20. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/models/__init__.py +0 -0
  21. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/models/job.py +0 -0
  22. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/models/project.py +0 -0
  23. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/models/security.py +0 -0
  24. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/models/state.py +0 -0
  25. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/models/task.py +0 -0
  26. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/models/workflow.py +0 -0
  27. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/runner/.gitignore +0 -0
  28. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/runner/_common.py +0 -0
  29. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/runner/_local/__init__.py +0 -0
  30. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/runner/_local/_local_config.py +0 -0
  31. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/runner/_local/_submit_setup.py +0 -0
  32. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/runner/_local/executor.py +0 -0
  33. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/runner/_slurm/.gitignore +0 -0
  34. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/runner/_slurm/__init__.py +0 -0
  35. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/runner/_slurm/_batching.py +0 -0
  36. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/runner/_slurm/_executor_wait_thread.py +0 -0
  37. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/runner/_slurm/_slurm_config.py +0 -0
  38. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/runner/_slurm/_submit_setup.py +0 -0
  39. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/runner/_slurm/_subprocess_run_as_user.py +0 -0
  40. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/runner/_slurm/executor.py +0 -0
  41. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/runner/_slurm/remote.py +0 -0
  42. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/runner/common.py +0 -0
  43. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/app/security/__init__.py +0 -0
  44. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/.git +0 -0
  45. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/.github/workflows/ci.yml +0 -0
  46. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/.github/workflows/project-management.yml +0 -0
  47. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/.gitignore +0 -0
  48. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/.pre-commit-config.yaml +0 -0
  49. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/README.md +0 -0
  50. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/__init__.py +0 -0
  51. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/__pycache__/__init__.cpython-310.pyc +0 -0
  52. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/__pycache__/__init__.cpython-311.pyc +0 -0
  53. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/requirements.txt +0 -0
  54. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__init__.py +0 -0
  55. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/__init__.cpython-310.pyc +0 -0
  56. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/__init__.cpython-311.pyc +0 -0
  57. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/_validator.cpython-310.pyc +0 -0
  58. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/_validators.cpython-310.pyc +0 -0
  59. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/applyworkflow.cpython-310.pyc +0 -0
  60. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/applyworkflow.cpython-311.pyc +0 -0
  61. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/manifest.cpython-310.pyc +0 -0
  62. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/manifest.cpython-311.pyc +0 -0
  63. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/project.cpython-310.pyc +0 -0
  64. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/project.cpython-311.pyc +0 -0
  65. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/state.cpython-310.pyc +0 -0
  66. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/state.cpython-311.pyc +0 -0
  67. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/task.cpython-310.pyc +0 -0
  68. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/task.cpython-311.pyc +0 -0
  69. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/user.cpython-310.pyc +0 -0
  70. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/user.cpython-311.pyc +0 -0
  71. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/workflow.cpython-310.pyc +0 -0
  72. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/__pycache__/workflow.cpython-311.pyc +0 -0
  73. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/_validators.py +0 -0
  74. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/applyworkflow.py +0 -0
  75. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/manifest.py +0 -0
  76. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/project.py +0 -0
  77. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/state.py +0 -0
  78. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/task.py +0 -0
  79. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/user.py +0 -0
  80. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/schemas/workflow.py +0 -0
  81. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/conftest.cpython-310-pytest-7.2.1.pyc +0 -0
  82. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/conftest.cpython-310-pytest-7.2.2.pyc +0 -0
  83. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/conftest.cpython-310-pytest-7.3.1.pyc +0 -0
  84. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_applyworkflow.cpython-310-pytest-7.2.1.pyc +0 -0
  85. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_applyworkflow.cpython-310-pytest-7.2.2.pyc +0 -0
  86. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_applyworkflow.cpython-310-pytest-7.3.1.pyc +0 -0
  87. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_dataset.cpython-310-pytest-7.2.1.pyc +0 -0
  88. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_dataset.cpython-310-pytest-7.2.2.pyc +0 -0
  89. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_dataset.cpython-310-pytest-7.3.1.pyc +0 -0
  90. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_manifest.cpython-310-pytest-7.2.1.pyc +0 -0
  91. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_manifest.cpython-310-pytest-7.2.2.pyc +0 -0
  92. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_manifest.cpython-310-pytest-7.3.1.pyc +0 -0
  93. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_project.cpython-310-pytest-7.2.1.pyc +0 -0
  94. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_project.cpython-310-pytest-7.2.2.pyc +0 -0
  95. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_project.cpython-310-pytest-7.3.1.pyc +0 -0
  96. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_state.cpython-310-pytest-7.2.1.pyc +0 -0
  97. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_state.cpython-310-pytest-7.2.2.pyc +0 -0
  98. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_state.cpython-310-pytest-7.3.1.pyc +0 -0
  99. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_task.cpython-310-pytest-7.2.1.pyc +0 -0
  100. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_task.cpython-310-pytest-7.2.2.pyc +0 -0
  101. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_task.cpython-310-pytest-7.3.1.pyc +0 -0
  102. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_user.cpython-310-pytest-7.2.1.pyc +0 -0
  103. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_user.cpython-310-pytest-7.2.2.pyc +0 -0
  104. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_user.cpython-310-pytest-7.3.1.pyc +0 -0
  105. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_workflow.cpython-310-pytest-7.2.1.pyc +0 -0
  106. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_workflow.cpython-310-pytest-7.2.2.pyc +0 -0
  107. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/__pycache__/test_workflow.cpython-310-pytest-7.3.1.pyc +0 -0
  108. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/conftest.py +0 -0
  109. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/test_applyworkflow.py +0 -0
  110. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/test_dataset.py +0 -0
  111. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/test_manifest.py +0 -0
  112. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/test_project.py +0 -0
  113. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/test_state.py +0 -0
  114. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/test_task.py +0 -0
  115. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/test_user.py +0 -0
  116. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/common/tests/test_workflow.py +0 -0
  117. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/config.py +0 -0
  118. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/logger.py +0 -0
  119. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/main.py +0 -0
  120. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/migrations/README +0 -0
  121. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/migrations/env.py +0 -0
  122. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/migrations/script.py.mako +0 -0
  123. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/migrations/versions/385aa8c18489_add_user_cache_dir.py +0 -0
  124. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/migrations/versions/47072e0106ce_initial_schema.py +0 -0
  125. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/migrations/versions/6dede8d6fd9d_drop_project_project_dir.py +0 -0
  126. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/py.typed +0 -0
  127. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/syringe.py +0 -0
  128. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/tasks/__init__.py +0 -0
  129. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/tasks/collection.py +0 -0
  130. {fractal_server-1.2.3a1 → fractal_server-1.2.3a2}/fractal_server/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fractal-server
3
- Version: 1.2.3a1
3
+ Version: 1.2.3a2
4
4
  Summary: Server component of the Fractal analytics platform
5
5
  Home-page: https://github.com/fractal-analytics-platform/fractal-server
6
6
  License: BSD-3-Clause
@@ -0,0 +1 @@
1
+ __VERSION__ = "1.2.3a2"
@@ -409,7 +409,7 @@ async def get_job_list(
409
409
  stm = select(ApplyWorkflow).where(ApplyWorkflow.project_id == project_id)
410
410
  res = await db.execute(stm)
411
411
  job_list = res.scalars().all()
412
-
412
+ await db.close()
413
413
  return job_list
414
414
 
415
415
 
@@ -48,7 +48,9 @@ router = APIRouter()
48
48
 
49
49
 
50
50
  async def _background_collect_pip(
51
- state: State, venv_path: Path, task_pkg: _TaskCollectPip, db: AsyncSession
51
+ state_id: int,
52
+ venv_path: Path,
53
+ task_pkg: _TaskCollectPip,
52
54
  ) -> None:
53
55
  """
54
56
  Install package and collect tasks
@@ -59,6 +61,12 @@ async def _background_collect_pip(
59
61
  In case of error, copy the log into the state and delete the package
60
62
  directory.
61
63
  """
64
+
65
+ # Note: anext(get_db()) is only available for python>=3.10
66
+ db = await get_db().__anext__()
67
+
68
+ state: State = await db.get(State, state_id)
69
+
62
70
  logger_name = task_pkg.package.replace("/", "_")
63
71
  logger = set_logger(
64
72
  logger_name=logger_name,
@@ -110,6 +118,7 @@ async def _background_collect_pip(
110
118
  logger.debug("Task-collection status: OK")
111
119
  logger.info("Background task collection completed successfully")
112
120
  close_logger(logger)
121
+ await db.close()
113
122
 
114
123
  except Exception as e:
115
124
  # Write last logs to file
@@ -124,6 +133,7 @@ async def _background_collect_pip(
124
133
  state.data = data.sanitised_dict()
125
134
  await db.merge(state)
126
135
  await db.commit()
136
+ await db.close()
127
137
 
128
138
  # Delete corrupted package dir
129
139
  shell_rmtree(venv_path)
@@ -240,10 +250,9 @@ async def collect_tasks_pip(
240
250
 
241
251
  background_tasks.add_task(
242
252
  _background_collect_pip,
243
- state=state,
253
+ state_id=state.id,
244
254
  venv_path=venv_path,
245
255
  task_pkg=task_pkg,
246
- db=db,
247
256
  )
248
257
  logger.debug(
249
258
  "Task-collection endpoint: start background collection "
@@ -207,6 +207,10 @@ async def submit_workflow(
207
207
  worker_init=worker_init,
208
208
  )
209
209
 
210
+ logger.info(
211
+ f'End execution of workflow "{workflow.name}"; '
212
+ f"more logs at {str(log_file_path)}"
213
+ )
210
214
  logger.debug(f'END workflow "{workflow.name}"')
211
215
 
212
216
  db_sync.merge(output_dataset)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "fractal-server"
3
- version = "1.2.3a1"
3
+ version = "1.2.3a2"
4
4
  description = "Server component of the Fractal analytics platform"
5
5
  authors = [
6
6
  "Jacopo Nespolo <jacopo.nespolo@exact-lab.it>",
@@ -75,7 +75,7 @@ filterwarnings = [
75
75
  ]
76
76
 
77
77
  [tool.bumpver]
78
- current_version = "1.2.3a1"
78
+ current_version = "1.2.3a2"
79
79
  version_pattern = "MAJOR.MINOR.PATCH[PYTAGNUM]"
80
80
  commit_message = "bump version {old_version} -> {new_version}"
81
81
  commit = true
@@ -44,7 +44,7 @@ entry_points = \
44
44
 
45
45
  setup_kwargs = {
46
46
  'name': 'fractal-server',
47
- 'version': '1.2.3a1',
47
+ 'version': '1.2.3a2',
48
48
  'description': 'Server component of the Fractal analytics platform',
49
49
  'long_description': '# Fractal Server\n\n[![PyPI version](https://img.shields.io/pypi/v/fractal-server?color=gree)](https://pypi.org/project/fractal-server/)\n[![CI Status](https://github.com/fractal-analytics-platform/fractal-server/actions/workflows/ci.yml/badge.svg)](https://github.com/fractal-analytics-platform/fractal-server/actions/workflows/ci.yml)\n[![Coverage](https://raw.githubusercontent.com/fractal-analytics-platform/fractal-server/python-coverage-comment-action-data/badge.svg)](https://htmlpreview.github.io/?https://github.com/fractal-analytics-platform/fractal-server/blob/python-coverage-comment-action-data/htmlcov/index.html)\n[![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)\n\nFractal is a framework to process high content imaging data at scale and\nprepare it for interactive visualization.\n\n![Fractal_Overview](https://fractal-analytics-platform.github.io/assets/fractal_overview.jpg)\n\nThis is the server component of the fractal analytics platform.\nFind more information about Fractal in general and the other repositories at\nthe [Fractal home page](https://fractal-analytics-platform.github.io).\n\n\n## Documentation\n\nSee https://fractal-analytics-platform.github.io/fractal-server.\n\n# Contributors and license\n\nUnless otherwise stated in each individual module, all Fractal components are\nreleased according to a BSD 3-Clause License, and Copyright is with Friedrich\nMiescher Institute for Biomedical Research and University of Zurich.\n\nThe SLURM compatibility layer is based on\n[`clusterfutures`](https://github.com/sampsyo/clusterfutures), by\n[@sampsyo](https://github.com/sampsyo) and collaborators, and it is released\nunder the terms of the MIT license.\n\nFractal was conceived in the Liberali Lab at the Friedrich Miescher Institute\nfor Biomedical Research and in the Pelkmans Lab at the University of Zurich\n(both in Switzerland). The project lead is with\n[@gusqgm](https://github.com/gusqgm) & [@jluethi](https://github.com/jluethi).\nThe core development is done under contract by\n[@mfranzon](https://github.com/mfranzon), [@tcompa](https://github.com/tcompa)\n& [@japs](https://github.com/japs) of [eXact lab S.r.l.](exact-lab.it).\n',
50
50
  'author': 'Jacopo Nespolo',
@@ -1 +0,0 @@
1
- __VERSION__ = "1.2.3a1"