fractal-server 2.0.0a12__py3-none-any.whl → 2.0.1__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/v2/submit.py +1 -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/logger.py +11 -0
- fractal_server/tasks/v2/background_operations.py +5 -3
- {fractal_server-2.0.0a12.dist-info → fractal_server-2.0.1.dist-info}/METADATA +3 -3
- {fractal_server-2.0.0a12.dist-info → fractal_server-2.0.1.dist-info}/RECORD +12 -12
- {fractal_server-2.0.0a12.dist-info → fractal_server-2.0.1.dist-info}/WHEEL +1 -1
- {fractal_server-2.0.0a12.dist-info → fractal_server-2.0.1.dist-info}/LICENSE +0 -0
- {fractal_server-2.0.0a12.dist-info → fractal_server-2.0.1.dist-info}/entry_points.txt +0 -0
fractal_server/__init__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__VERSION__ = "2.0.
|
1
|
+
__VERSION__ = "2.0.1"
|
@@ -146,7 +146,7 @@ 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(exclude={"timestamp_created"}),
|
149
|
+
**dataset.model_dump(exclude={"images", "timestamp_created"}),
|
150
150
|
timestamp_created=_encode_as_utc(dataset.timestamp_created),
|
151
151
|
),
|
152
152
|
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()
|
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()
|
@@ -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.1
|
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=JTWFDLKimtlT6mPcm6_e8XrP61UXaA7yz2ycXya7oVs,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
|
@@ -42,11 +42,11 @@ fractal_server/app/routes/api/v2/images.py,sha256=4r_HblPWyuKSZSJZfn8mbDaLv1ncwZ
|
|
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
44
|
fractal_server/app/routes/api/v2/status.py,sha256=3bqQejJ3TnIMan5wK6jr9sv4ypsQr9WWU8xqlvTgDCE,5739
|
45
|
-
fractal_server/app/routes/api/v2/submit.py,sha256=
|
45
|
+
fractal_server/app/routes/api/v2/submit.py,sha256=63nfaPr3rCiMXCITJ0TWBqqSuZdLrQ7vcfzJonU5nHk,6899
|
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
|
@@ -126,7 +126,7 @@ fractal_server/data_migrations/README.md,sha256=_3AEFvDg9YkybDqCLlFPdDmGJvr6Tw7H
|
|
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=
|
129
|
+
fractal_server/logger.py,sha256=AuCmrwIydaFWpotMTM_tGRNJbExQO5fP8Xolo82Vdbg,4178
|
130
130
|
fractal_server/main.py,sha256=7CpwPfCsHxBAo5fWuXPCsYOFCpbBI0F7Z0jsgCQdou8,3001
|
131
131
|
fractal_server/migrations/README,sha256=4rQvyDfqodGhpJw74VYijRmgFP49ji5chyEemWGHsuw,59
|
132
132
|
fractal_server/migrations/env.py,sha256=bsl0HGZpjhommztgcs7wQ94sJzI1Orgnij97K8P_uyo,2630
|
@@ -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.1.dist-info/LICENSE,sha256=QKAharUuhxL58kSoLizKJeZE3mTCBnX6ucmz8W0lxlk,1576
|
166
|
+
fractal_server-2.0.1.dist-info/METADATA,sha256=P7zEZwNFrYKxiIHHc24m3XGNKnjrYiY7xabRv7vwz5A,4202
|
167
|
+
fractal_server-2.0.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
168
|
+
fractal_server-2.0.1.dist-info/entry_points.txt,sha256=8tV2kynvFkjnhbtDnxAqImL6HMVKsopgGfew0DOp5UY,58
|
169
|
+
fractal_server-2.0.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|