fractal-server 2.0.0a12__py3-none-any.whl → 2.0.2__py3-none-any.whl
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.
- fractal_server/__init__.py +1 -1
- fractal_server/app/routes/api/v1/project.py +2 -2
- fractal_server/app/routes/api/v2/status.py +19 -1
- fractal_server/app/routes/api/v2/submit.py +3 -1
- fractal_server/app/routes/api/v2/task_collection.py +3 -3
- fractal_server/app/routes/api/v2/workflow.py +2 -2
- fractal_server/app/runner/v2/__init__.py +2 -2
- fractal_server/app/schemas/v2/dumps.py +2 -2
- fractal_server/config.py +0 -5
- fractal_server/logger.py +11 -0
- fractal_server/main.py +10 -0
- fractal_server/tasks/v2/background_operations.py +5 -3
- {fractal_server-2.0.0a12.dist-info → fractal_server-2.0.2.dist-info}/METADATA +3 -3
- {fractal_server-2.0.0a12.dist-info → fractal_server-2.0.2.dist-info}/RECORD +17 -17
- {fractal_server-2.0.0a12.dist-info → fractal_server-2.0.2.dist-info}/WHEEL +1 -1
- {fractal_server-2.0.0a12.dist-info → fractal_server-2.0.2.dist-info}/LICENSE +0 -0
- {fractal_server-2.0.0a12.dist-info → fractal_server-2.0.2.dist-info}/entry_points.txt +0 -0
fractal_server/__init__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__VERSION__ = "2.0.
|
1
|
+
__VERSION__ = "2.0.2"
|
@@ -398,7 +398,7 @@ async def apply_workflow(
|
|
398
398
|
user_email=user.email,
|
399
399
|
input_dataset_dump=dict(
|
400
400
|
**input_dataset.model_dump(
|
401
|
-
exclude={"resource_list", "timestamp_created"}
|
401
|
+
exclude={"resource_list", "history", "timestamp_created"}
|
402
402
|
),
|
403
403
|
timestamp_created=_encode_as_utc(input_dataset.timestamp_created),
|
404
404
|
resource_list=[
|
@@ -408,7 +408,7 @@ async def apply_workflow(
|
|
408
408
|
),
|
409
409
|
output_dataset_dump=dict(
|
410
410
|
**output_dataset.model_dump(
|
411
|
-
exclude={"resource_list", "timestamp_created"}
|
411
|
+
exclude={"resource_list", "history", "timestamp_created"}
|
412
412
|
),
|
413
413
|
timestamp_created=_encode_as_utc(output_dataset.timestamp_created),
|
414
414
|
resource_list=[
|
@@ -7,6 +7,7 @@ from fastapi import Depends
|
|
7
7
|
from fastapi import HTTPException
|
8
8
|
from fastapi import status
|
9
9
|
|
10
|
+
from .....logger import set_logger
|
10
11
|
from ....db import AsyncSession
|
11
12
|
from ....db import get_async_db
|
12
13
|
from ....models.v2 import JobV2
|
@@ -21,6 +22,8 @@ from fractal_server.app.runner.filenames import HISTORY_FILENAME
|
|
21
22
|
|
22
23
|
router = APIRouter()
|
23
24
|
|
25
|
+
logger = set_logger(__name__)
|
26
|
+
|
24
27
|
|
25
28
|
@router.get(
|
26
29
|
"/project/{project_id}/status/",
|
@@ -113,7 +116,22 @@ async def get_workflowtask_status(
|
|
113
116
|
|
114
117
|
# The last workflow task that is included in the submitted job is also
|
115
118
|
# the positional-last workflow task to be included in the response.
|
116
|
-
|
119
|
+
try:
|
120
|
+
last_valid_wftask_id = workflow.task_list[end - 1].id
|
121
|
+
except IndexError as e:
|
122
|
+
logger.warning(
|
123
|
+
f"Handled IndexError in `get_workflowtask_status` ({str(e)})."
|
124
|
+
)
|
125
|
+
logger.warning(
|
126
|
+
"Additional information: "
|
127
|
+
f"{running_job.first_task_index=}; "
|
128
|
+
f"{running_job.last_task_index=}; "
|
129
|
+
f"{len(workflow.task_list)=}; "
|
130
|
+
f"{dataset_id=}; "
|
131
|
+
f"{workflow_id=}."
|
132
|
+
)
|
133
|
+
last_valid_wftask_id = None
|
134
|
+
logger.warning(f"Now setting {last_valid_wftask_id=}.")
|
117
135
|
|
118
136
|
# Highest priority: Read status updates coming from the running-job
|
119
137
|
# temporary file. Note: this file only contains information on
|
@@ -146,7 +146,9 @@ async def apply_workflow(
|
|
146
146
|
workflow_id=workflow_id,
|
147
147
|
user_email=user.email,
|
148
148
|
dataset_dump=dict(
|
149
|
-
**dataset.model_dump(
|
149
|
+
**dataset.model_dump(
|
150
|
+
exclude={"images", "history", "timestamp_created"}
|
151
|
+
),
|
150
152
|
timestamp_created=_encode_as_utc(dataset.timestamp_created),
|
151
153
|
),
|
152
154
|
workflow_dump=dict(
|
@@ -12,7 +12,7 @@ from pydantic.error_wrappers import ValidationError
|
|
12
12
|
from sqlmodel import select
|
13
13
|
|
14
14
|
from .....config import get_settings
|
15
|
-
from .....logger import
|
15
|
+
from .....logger import reset_logger_handlers
|
16
16
|
from .....logger import set_logger
|
17
17
|
from .....syringe import Inject
|
18
18
|
from ....db import AsyncSession
|
@@ -196,7 +196,7 @@ async def collect_tasks_pip(
|
|
196
196
|
"Task-collection endpoint: start background collection "
|
197
197
|
"and return state"
|
198
198
|
)
|
199
|
-
|
199
|
+
reset_logger_handlers(logger)
|
200
200
|
info = (
|
201
201
|
"Collecting tasks in the background. "
|
202
202
|
f"GET /task/collect/{state.id} to query collection status"
|
@@ -234,6 +234,6 @@ async def check_collection_status(
|
|
234
234
|
if verbose and not data.log:
|
235
235
|
data.log = get_collection_log(data.venv_path)
|
236
236
|
state.data = data.sanitised_dict()
|
237
|
-
|
237
|
+
reset_logger_handlers(logger)
|
238
238
|
await db.close()
|
239
239
|
return state
|
@@ -7,7 +7,7 @@ from fastapi import Response
|
|
7
7
|
from fastapi import status
|
8
8
|
from sqlmodel import select
|
9
9
|
|
10
|
-
from .....logger import
|
10
|
+
from .....logger import reset_logger_handlers
|
11
11
|
from .....logger import set_logger
|
12
12
|
from ....db import AsyncSession
|
13
13
|
from ....db import get_async_db
|
@@ -259,7 +259,7 @@ async def export_worfklow(
|
|
259
259
|
"portable; re-importing this workflow may not work as "
|
260
260
|
"expected."
|
261
261
|
)
|
262
|
-
|
262
|
+
reset_logger_handlers(logger)
|
263
263
|
|
264
264
|
await db.close()
|
265
265
|
return workflow
|
@@ -13,7 +13,7 @@ from typing import Optional
|
|
13
13
|
from sqlalchemy.orm.attributes import flag_modified
|
14
14
|
|
15
15
|
from ....config import get_settings
|
16
|
-
from ....logger import
|
16
|
+
from ....logger import reset_logger_handlers
|
17
17
|
from ....logger import set_logger
|
18
18
|
from ....syringe import Inject
|
19
19
|
from ....utils import get_timestamp
|
@@ -332,5 +332,5 @@ async def submit_workflow(
|
|
332
332
|
db_sync.merge(job)
|
333
333
|
db_sync.commit()
|
334
334
|
finally:
|
335
|
-
|
335
|
+
reset_logger_handlers(logger)
|
336
336
|
db_sync.close()
|
@@ -70,14 +70,14 @@ class WorkflowTaskDumpV2(BaseModel):
|
|
70
70
|
return values
|
71
71
|
|
72
72
|
|
73
|
-
class WorkflowDumpV2(BaseModel):
|
73
|
+
class WorkflowDumpV2(BaseModel, extra=Extra.forbid):
|
74
74
|
id: int
|
75
75
|
name: str
|
76
76
|
project_id: int
|
77
77
|
timestamp_created: str
|
78
78
|
|
79
79
|
|
80
|
-
class DatasetDumpV2(BaseModel):
|
80
|
+
class DatasetDumpV2(BaseModel, extra=Extra.forbid):
|
81
81
|
id: int
|
82
82
|
name: str
|
83
83
|
project_id: int
|
fractal_server/config.py
CHANGED
@@ -441,9 +441,4 @@ class Settings(BaseSettings):
|
|
441
441
|
|
442
442
|
|
443
443
|
def get_settings(settings=Settings()) -> Settings:
|
444
|
-
logging.debug("Fractal Settings:")
|
445
|
-
for key, value in settings.dict().items():
|
446
|
-
if any(s in key.upper() for s in ["PASSWORD", "SECRET"]):
|
447
|
-
value = "*****"
|
448
|
-
logging.debug(f"{key}: {value}")
|
449
444
|
return settings
|
fractal_server/logger.py
CHANGED
@@ -125,3 +125,14 @@ def close_logger(logger: logging.Logger) -> None:
|
|
125
125
|
"""
|
126
126
|
for handle in logger.handlers:
|
127
127
|
handle.close()
|
128
|
+
|
129
|
+
|
130
|
+
def reset_logger_handlers(logger: logging.Logger) -> None:
|
131
|
+
"""
|
132
|
+
Close and remove all handlers associated to a `logging.Logger` object
|
133
|
+
|
134
|
+
Arguments:
|
135
|
+
logger: The actual logger
|
136
|
+
"""
|
137
|
+
close_logger(logger)
|
138
|
+
logger.handlers.clear()
|
fractal_server/main.py
CHANGED
@@ -19,6 +19,8 @@ from fastapi import FastAPI
|
|
19
19
|
|
20
20
|
from .app.security import _create_first_user
|
21
21
|
from .config import get_settings
|
22
|
+
from .logger import reset_logger_handlers
|
23
|
+
from .logger import set_logger
|
22
24
|
from .syringe import Inject
|
23
25
|
|
24
26
|
|
@@ -62,6 +64,14 @@ def check_settings() -> None:
|
|
62
64
|
settings = Inject(get_settings)
|
63
65
|
settings.check()
|
64
66
|
|
67
|
+
logger = set_logger("fractal_server_settings")
|
68
|
+
logger.debug("Fractal Settings:")
|
69
|
+
for key, value in settings.dict().items():
|
70
|
+
if any(s in key.upper() for s in ["PASSWORD", "SECRET"]):
|
71
|
+
value = "*****"
|
72
|
+
logger.debug(f" {key}: {value}")
|
73
|
+
reset_logger_handlers(logger)
|
74
|
+
|
65
75
|
|
66
76
|
async def __on_startup() -> None:
|
67
77
|
"""
|
@@ -20,8 +20,8 @@ from fractal_server.app.models.v2 import TaskV2
|
|
20
20
|
from fractal_server.app.schemas.v2 import TaskCollectStatusV2
|
21
21
|
from fractal_server.app.schemas.v2 import TaskCreateV2
|
22
22
|
from fractal_server.app.schemas.v2 import TaskReadV2
|
23
|
-
from fractal_server.logger import close_logger
|
24
23
|
from fractal_server.logger import get_logger
|
24
|
+
from fractal_server.logger import reset_logger_handlers
|
25
25
|
from fractal_server.logger import set_logger
|
26
26
|
from fractal_server.utils import execute_command
|
27
27
|
|
@@ -358,14 +358,14 @@ async def background_collect_pip(
|
|
358
358
|
# Write last logs to file
|
359
359
|
logger.debug("Task-collection status: OK")
|
360
360
|
logger.info("Background task collection completed successfully")
|
361
|
-
|
361
|
+
reset_logger_handlers(logger)
|
362
|
+
|
362
363
|
db.close()
|
363
364
|
|
364
365
|
except Exception as e:
|
365
366
|
# Write last logs to file
|
366
367
|
logger.debug("Task-collection status: fail")
|
367
368
|
logger.info(f"Background collection failed. Original error: {e}")
|
368
|
-
close_logger(logger)
|
369
369
|
|
370
370
|
# Update db
|
371
371
|
data.status = "fail"
|
@@ -379,3 +379,5 @@ async def background_collect_pip(
|
|
379
379
|
# Delete corrupted package dir
|
380
380
|
logger.info(f"Now deleting temporary folder {venv_path}")
|
381
381
|
shell_rmtree(venv_path)
|
382
|
+
logger.info("Temporary folder deleted")
|
383
|
+
reset_logger_handlers(logger)
|
@@ -1,11 +1,11 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: fractal-server
|
3
|
-
Version: 2.0.
|
3
|
+
Version: 2.0.2
|
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
|
7
|
-
Author:
|
8
|
-
Author-email:
|
7
|
+
Author: Tommaso Comparin
|
8
|
+
Author-email: tommaso.comparin@exact-lab.it
|
9
9
|
Requires-Python: >=3.9,<4.0
|
10
10
|
Classifier: License :: OSI Approved :: BSD License
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
@@ -1,4 +1,4 @@
|
|
1
|
-
fractal_server/__init__.py,sha256=
|
1
|
+
fractal_server/__init__.py,sha256=gs_vt2BGew5iMLZDjM9dN_UiSCo9swvJzExXe0z6N7w,22
|
2
2
|
fractal_server/__main__.py,sha256=CocbzZooX1UtGqPi55GcHGNxnrJXFg5tUU5b3wyFCyo,4958
|
3
3
|
fractal_server/alembic.ini,sha256=MWwi7GzjzawI9cCAK1LW7NxIBQDUqD12-ptJoq5JpP0,3153
|
4
4
|
fractal_server/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -30,7 +30,7 @@ fractal_server/app/routes/api/v1/__init__.py,sha256=Y2HQdG197J0a7DyQEE2jn53IfxD0
|
|
30
30
|
fractal_server/app/routes/api/v1/_aux_functions.py,sha256=KoSefKiBXximu0df4fJ3l9bKsGaLO8rb3z6xhD8PWj4,11973
|
31
31
|
fractal_server/app/routes/api/v1/dataset.py,sha256=HRE-8vPmVkeXf7WFYkI19mDtbY-iJZeJ7PmMiV0LMgY,16923
|
32
32
|
fractal_server/app/routes/api/v1/job.py,sha256=NwXyhvvzdPDor0ts8Im__9-I0P1H943s4NXIRgaz7PM,5436
|
33
|
-
fractal_server/app/routes/api/v1/project.py,sha256=
|
33
|
+
fractal_server/app/routes/api/v1/project.py,sha256=tb1M2hhAKyHeToV0RwAQQx0ptIDeX6sEjM7dkfjCpXQ,15799
|
34
34
|
fractal_server/app/routes/api/v1/task.py,sha256=udbKnenzc-Q10elYCVB9JmOPWATraa9tZi0AaByvWo0,6129
|
35
35
|
fractal_server/app/routes/api/v1/task_collection.py,sha256=mFaYyCWtCPRqvs3j6zx_zaiDXn31Uzoa7UHZS-Lu_L0,8882
|
36
36
|
fractal_server/app/routes/api/v1/workflow.py,sha256=7r9IoIevg_rvYCrerMOsIsUabSOQatxdPCfLdkP0dRs,10942
|
@@ -41,12 +41,12 @@ fractal_server/app/routes/api/v2/dataset.py,sha256=_HjKNP9XsMGoqyubGdF2ZyeW7vXC3
|
|
41
41
|
fractal_server/app/routes/api/v2/images.py,sha256=4r_HblPWyuKSZSJZfn8mbDaLv1ncwZU0gWdKneZcNG4,7894
|
42
42
|
fractal_server/app/routes/api/v2/job.py,sha256=BtaxErBDbLwjY2zgGD1I6eRpsffoMonifcS1CMEXmLU,5325
|
43
43
|
fractal_server/app/routes/api/v2/project.py,sha256=qyvizYZ4aUFgF3tGdfp4z8AwWgfo19N_KbFEljfUaC8,5594
|
44
|
-
fractal_server/app/routes/api/v2/status.py,sha256=
|
45
|
-
fractal_server/app/routes/api/v2/submit.py,sha256=
|
44
|
+
fractal_server/app/routes/api/v2/status.py,sha256=osLexiMOSqmYcEV-41tlrwt9ofyFbtRm5HmPS5BU0t4,6394
|
45
|
+
fractal_server/app/routes/api/v2/submit.py,sha256=svI1Oa2zIxUEAomzRt7-M66xKC4Pb9NEGcXNrtN6b5g,6940
|
46
46
|
fractal_server/app/routes/api/v2/task.py,sha256=gJ0LruSk-Q1iMw8ZOX8C0wrZ4S4DGlQTr_5SdJJud0Q,7130
|
47
|
-
fractal_server/app/routes/api/v2/task_collection.py,sha256=
|
47
|
+
fractal_server/app/routes/api/v2/task_collection.py,sha256=eN3NkZaZHkrqnLGRKE7Xd5mo0cHc8aK2lojCt26ErOQ,8988
|
48
48
|
fractal_server/app/routes/api/v2/task_legacy.py,sha256=P_VJv9v0yzFUBuS-DQHhMVSOe20ecGJJcFBqiiFciOM,1628
|
49
|
-
fractal_server/app/routes/api/v2/workflow.py,sha256=
|
49
|
+
fractal_server/app/routes/api/v2/workflow.py,sha256=2GlcYNjpvCdjwC_Kn7y0UP16B3pOLSNXBvIVsVDtDKM,11863
|
50
50
|
fractal_server/app/routes/api/v2/workflowtask.py,sha256=l4eTD5IIun5cOdYzsxh3ajmnOISaSccYA_mVf15Cjtw,8802
|
51
51
|
fractal_server/app/routes/auth.py,sha256=Xv80iqdyfY3lyicYs2Y8B6zEDEnyUu_H6_6psYtv3R4,4885
|
52
52
|
fractal_server/app/routes/aux/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -80,7 +80,7 @@ fractal_server/app/runner/v1/_slurm/_submit_setup.py,sha256=llTgSOCnCVMvm7Q0SoVp
|
|
80
80
|
fractal_server/app/runner/v1/_slurm/get_slurm_config.py,sha256=6TLWQon8hSicsD7c3yXK4P9xeId0s_H3HOOeMUVGVss,5977
|
81
81
|
fractal_server/app/runner/v1/common.py,sha256=_L-vjLnWato80VdlB_BFN4G8P4jSM07u-5cnl1T3S34,3294
|
82
82
|
fractal_server/app/runner/v1/handle_failed_job.py,sha256=bHzScC_aIlU3q-bQxGW6rfWV4xbZ2tho_sktjsAs1no,4684
|
83
|
-
fractal_server/app/runner/v2/__init__.py,sha256=
|
83
|
+
fractal_server/app/runner/v2/__init__.py,sha256=mnXlC69UBQVpEwEWH3ZbMSsrVLl1yCnROh8_WGnXKUk,12500
|
84
84
|
fractal_server/app/runner/v2/_local/__init__.py,sha256=Q1s-DwXleUq6w1ZNv6tlh3tZv6cyBqxB_hMvZlqVYaM,5881
|
85
85
|
fractal_server/app/runner/v2/_local/_local_config.py,sha256=lR0Js-l63mQUzN9hK0HkfdLsrTf-W6GHvPvbPC64amY,3630
|
86
86
|
fractal_server/app/runner/v2/_local/_submit_setup.py,sha256=deagsLSy6A3ZHKaSDcQqrdvbQVM3i4kgyTcbVc0tC5U,1614
|
@@ -111,7 +111,7 @@ fractal_server/app/schemas/v1/task_collection.py,sha256=uvq9bcMaGD_qHsh7YtcpoSAk
|
|
111
111
|
fractal_server/app/schemas/v1/workflow.py,sha256=tuOs5E5Q_ozA8if7YPZ07cQjzqB_QMkBS4u92qo4Ro0,4618
|
112
112
|
fractal_server/app/schemas/v2/__init__.py,sha256=IssDWR6q_mgNkaAxfhSnEZZLZRZIqOsr9SM7RvN1IsY,1852
|
113
113
|
fractal_server/app/schemas/v2/dataset.py,sha256=dLT52tV4dSf2HrFNak4vdQEn8PT_04IUrGnd2z-AXIU,2599
|
114
|
-
fractal_server/app/schemas/v2/dumps.py,sha256=
|
114
|
+
fractal_server/app/schemas/v2/dumps.py,sha256=Qg7n0WNfqCV5DBFwfYIKP-OrBjyMZETnNZyoL-EqIco,2063
|
115
115
|
fractal_server/app/schemas/v2/job.py,sha256=zfF9K3v4jWUJ7M482ta2CkqUJ4tVT4XfVt60p9IRhP0,3250
|
116
116
|
fractal_server/app/schemas/v2/manifest.py,sha256=N37IWohcfO3_y2l8rVM0h_1nZq7m4Izxk9iL1vtwBJw,6243
|
117
117
|
fractal_server/app/schemas/v2/project.py,sha256=u7S4B-bote1oGjzAGiZ-DuQIyeRAGqJsI71Tc1EtYE0,736
|
@@ -121,13 +121,13 @@ fractal_server/app/schemas/v2/task_collection.py,sha256=sY29NQfJrbjiidmVkVjSIH-2
|
|
121
121
|
fractal_server/app/schemas/v2/workflow.py,sha256=Zzx3e-qgkH8le0FUmAx9UrV5PWd7bj14PPXUh_zgZXM,1827
|
122
122
|
fractal_server/app/schemas/v2/workflowtask.py,sha256=atVuVN4aXsVEOmSd-vyg-8_8OnPmqx-gT75rXcn_AlQ,6552
|
123
123
|
fractal_server/app/security/__init__.py,sha256=wxosoHc3mJYPCdPMyWnRD8w_2OgnKYp2aDkdmwrZh5k,11203
|
124
|
-
fractal_server/config.py,sha256=
|
124
|
+
fractal_server/config.py,sha256=2vw5M78aAogELsWut9X5sxxUz2lirNFpgqP6OynmKOQ,14859
|
125
125
|
fractal_server/data_migrations/README.md,sha256=_3AEFvDg9YkybDqCLlFPdDmGJvr6Tw7HRI14aZ3LOIw,398
|
126
126
|
fractal_server/images/__init__.py,sha256=xO6jTLE4EZKO6cTDdJsBmK9cdeh9hFTaSbSuWgQg7y4,196
|
127
127
|
fractal_server/images/models.py,sha256=9ipU5h4N6ogBChoB-2vHoqtL0TXOHCv6kRR-fER3mkM,4167
|
128
128
|
fractal_server/images/tools.py,sha256=gxeniYy4Z-cp_ToK2LHPJUTVVUUrdpogYdcBUvBuLiY,2209
|
129
|
-
fractal_server/logger.py,sha256=
|
130
|
-
fractal_server/main.py,sha256=
|
129
|
+
fractal_server/logger.py,sha256=AuCmrwIydaFWpotMTM_tGRNJbExQO5fP8Xolo82Vdbg,4178
|
130
|
+
fractal_server/main.py,sha256=u_MngsZWI-1uKrBpNDUYXKyLgaYodyAEw2dKZrIzS_U,3381
|
131
131
|
fractal_server/migrations/README,sha256=4rQvyDfqodGhpJw74VYijRmgFP49ji5chyEemWGHsuw,59
|
132
132
|
fractal_server/migrations/env.py,sha256=bsl0HGZpjhommztgcs7wQ94sJzI1Orgnij97K8P_uyo,2630
|
133
133
|
fractal_server/migrations/script.py.mako,sha256=oMXw9LC3zRbinWWPPDgeZ4z9FJrV2zhRWiYdS5YgNbI,526
|
@@ -158,12 +158,12 @@ fractal_server/tasks/v1/background_operations.py,sha256=I-D4SaG56UMkoH7dNy5CzbEs
|
|
158
158
|
fractal_server/tasks/v1/get_collection_data.py,sha256=bi9tuApLgoKZNMIG1kR4GoKI9S6Y040gFfNQapw4ikM,502
|
159
159
|
fractal_server/tasks/v2/_TaskCollectPip.py,sha256=QeCqXDgOnMjk3diVlC5bgGEywyQjYFm5637Rke49vJY,3775
|
160
160
|
fractal_server/tasks/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
161
|
-
fractal_server/tasks/v2/background_operations.py,sha256=
|
161
|
+
fractal_server/tasks/v2/background_operations.py,sha256=MAMBn6W2bhkdK59kfUGiD7a1G163exiYeJqqtj08Gv4,12922
|
162
162
|
fractal_server/tasks/v2/get_collection_data.py,sha256=Qhf2T_aaqAfqu9_KpUSlXsS7EJoZQbEPEreHHa2jco8,502
|
163
163
|
fractal_server/urls.py,sha256=5o_qq7PzKKbwq12NHSQZDmDitn5RAOeQ4xufu-2v9Zk,448
|
164
164
|
fractal_server/utils.py,sha256=b7WwFdcFZ8unyT65mloFToYuEDXpQoHRcmRNqrhd_dQ,2115
|
165
|
-
fractal_server-2.0.
|
166
|
-
fractal_server-2.0.
|
167
|
-
fractal_server-2.0.
|
168
|
-
fractal_server-2.0.
|
169
|
-
fractal_server-2.0.
|
165
|
+
fractal_server-2.0.2.dist-info/LICENSE,sha256=QKAharUuhxL58kSoLizKJeZE3mTCBnX6ucmz8W0lxlk,1576
|
166
|
+
fractal_server-2.0.2.dist-info/METADATA,sha256=ykUREKoZndksb0goOo27hM14j41SvTljFa5P7eR9zTU,4202
|
167
|
+
fractal_server-2.0.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
168
|
+
fractal_server-2.0.2.dist-info/entry_points.txt,sha256=8tV2kynvFkjnhbtDnxAqImL6HMVKsopgGfew0DOp5UY,58
|
169
|
+
fractal_server-2.0.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|