fractal-task-tools 0.0.3__tar.gz → 0.0.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of fractal-task-tools might be problematic. Click here for more details.
- {fractal_task_tools-0.0.3/src/fractal_task_tools.egg-info → fractal_task_tools-0.0.4}/PKG-INFO +1 -1
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/pyproject.toml +2 -2
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/__init__.py +1 -1
- fractal_task_tools-0.0.4/src/fractal_task_tools/task_wrapper.py +73 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4/src/fractal_task_tools.egg-info}/PKG-INFO +1 -1
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools.egg-info/SOURCES.txt +1 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/LICENSE +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/README.md +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/setup.cfg +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_args_schemas.py +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_cli.py +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_create_manifest.py +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_descriptions.py +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_package_name_tools.py +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_pydantic_generatejsonschema.py +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_signature_constraints.py +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_task_docs.py +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_titles.py +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/task_models.py +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools.egg-info/dependency_links.txt +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools.egg-info/entry_points.txt +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools.egg-info/requires.txt +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools.egg-info/top_level.txt +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/tests/test_create_schema_for_single_task.py +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/tests/test_extract_function.py +0 -0
- {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/tests/test_unit_lib_descriptions.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "fractal-task-tools"
|
|
3
|
-
version = "0.0.
|
|
3
|
+
version = "0.0.4"
|
|
4
4
|
description = "Shared tools for Fractal tasks"
|
|
5
5
|
authors = [
|
|
6
6
|
{name="Tommaso Comparin", email="tommaso.comparin@exact-lab.it"},
|
|
@@ -34,7 +34,7 @@ build-backend = "setuptools.build_meta"
|
|
|
34
34
|
fractal-manifest = "fractal_task_tools._cli:main"
|
|
35
35
|
|
|
36
36
|
[tool.bumpver]
|
|
37
|
-
current_version = "0.0.
|
|
37
|
+
current_version = "0.0.4"
|
|
38
38
|
version_pattern = "MAJOR.MINOR.PATCH[PYTAGNUM]"
|
|
39
39
|
commit_message = "bump version {old_version} -> {new_version}"
|
|
40
40
|
commit = true
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Standard input/output interface for tasks.
|
|
3
|
+
"""
|
|
4
|
+
import json
|
|
5
|
+
import logging
|
|
6
|
+
from argparse import ArgumentParser
|
|
7
|
+
from json import JSONEncoder
|
|
8
|
+
from pathlib import Path
|
|
9
|
+
from typing import Optional
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class TaskParameterEncoder(JSONEncoder):
|
|
13
|
+
"""
|
|
14
|
+
Custom JSONEncoder that transforms Path objects to strings.
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
def default(self, value):
|
|
18
|
+
"""
|
|
19
|
+
Subclass implementation of `default`, to serialize Path objects as
|
|
20
|
+
strings.
|
|
21
|
+
"""
|
|
22
|
+
if isinstance(value, Path):
|
|
23
|
+
return value.as_posix()
|
|
24
|
+
return JSONEncoder.default(self, value)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def run_fractal_task(
|
|
28
|
+
*,
|
|
29
|
+
task_function: callable,
|
|
30
|
+
logger_name: Optional[str] = None,
|
|
31
|
+
):
|
|
32
|
+
"""
|
|
33
|
+
Implement standard task interface and call task_function.
|
|
34
|
+
|
|
35
|
+
Args:
|
|
36
|
+
task_function: the callable function that runs the task.
|
|
37
|
+
logger_name: TBD
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
# Parse `-j` and `--metadata-out` arguments
|
|
41
|
+
parser = ArgumentParser()
|
|
42
|
+
parser.add_argument(
|
|
43
|
+
"--args-json", help="Read parameters from json file", required=True
|
|
44
|
+
)
|
|
45
|
+
parser.add_argument(
|
|
46
|
+
"--out-json",
|
|
47
|
+
help="Output file to redirect serialised returned data",
|
|
48
|
+
required=True,
|
|
49
|
+
)
|
|
50
|
+
parsed_args = parser.parse_args()
|
|
51
|
+
|
|
52
|
+
# Set logger
|
|
53
|
+
logger = logging.getLogger(logger_name)
|
|
54
|
+
|
|
55
|
+
# Preliminary check
|
|
56
|
+
if Path(parsed_args.out_json).exists():
|
|
57
|
+
logger.error(
|
|
58
|
+
f"Output file {parsed_args.out_json} already exists. Terminating"
|
|
59
|
+
)
|
|
60
|
+
exit(1)
|
|
61
|
+
|
|
62
|
+
# Read parameters dictionary
|
|
63
|
+
with open(parsed_args.args_json, "r") as f:
|
|
64
|
+
pars = json.load(f)
|
|
65
|
+
|
|
66
|
+
# Run task
|
|
67
|
+
logger.info(f"START {task_function.__name__} task")
|
|
68
|
+
metadata_update = task_function(**pars)
|
|
69
|
+
logger.info(f"END {task_function.__name__} task")
|
|
70
|
+
|
|
71
|
+
# Write output metadata to file, with custom JSON encoder
|
|
72
|
+
with open(parsed_args.out_json, "w") as fout:
|
|
73
|
+
json.dump(metadata_update, fout, cls=TaskParameterEncoder, indent=2)
|
{fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools.egg-info/SOURCES.txt
RENAMED
|
@@ -12,6 +12,7 @@ src/fractal_task_tools/_signature_constraints.py
|
|
|
12
12
|
src/fractal_task_tools/_task_docs.py
|
|
13
13
|
src/fractal_task_tools/_titles.py
|
|
14
14
|
src/fractal_task_tools/task_models.py
|
|
15
|
+
src/fractal_task_tools/task_wrapper.py
|
|
15
16
|
src/fractal_task_tools.egg-info/PKG-INFO
|
|
16
17
|
src/fractal_task_tools.egg-info/SOURCES.txt
|
|
17
18
|
src/fractal_task_tools.egg-info/dependency_links.txt
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_args_schemas.py
RENAMED
|
File without changes
|
|
File without changes
|
{fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_create_manifest.py
RENAMED
|
File without changes
|
{fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_descriptions.py
RENAMED
|
File without changes
|
{fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_package_name_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools.egg-info/requires.txt
RENAMED
|
File without changes
|
{fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools.egg-info/top_level.txt
RENAMED
|
File without changes
|
{fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/tests/test_create_schema_for_single_task.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|