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.

Files changed (26) hide show
  1. {fractal_task_tools-0.0.3/src/fractal_task_tools.egg-info → fractal_task_tools-0.0.4}/PKG-INFO +1 -1
  2. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/pyproject.toml +2 -2
  3. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/__init__.py +1 -1
  4. fractal_task_tools-0.0.4/src/fractal_task_tools/task_wrapper.py +73 -0
  5. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4/src/fractal_task_tools.egg-info}/PKG-INFO +1 -1
  6. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools.egg-info/SOURCES.txt +1 -0
  7. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/LICENSE +0 -0
  8. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/README.md +0 -0
  9. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/setup.cfg +0 -0
  10. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_args_schemas.py +0 -0
  11. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_cli.py +0 -0
  12. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_create_manifest.py +0 -0
  13. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_descriptions.py +0 -0
  14. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_package_name_tools.py +0 -0
  15. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_pydantic_generatejsonschema.py +0 -0
  16. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_signature_constraints.py +0 -0
  17. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_task_docs.py +0 -0
  18. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/_titles.py +0 -0
  19. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools/task_models.py +0 -0
  20. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools.egg-info/dependency_links.txt +0 -0
  21. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools.egg-info/entry_points.txt +0 -0
  22. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools.egg-info/requires.txt +0 -0
  23. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/src/fractal_task_tools.egg-info/top_level.txt +0 -0
  24. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/tests/test_create_schema_for_single_task.py +0 -0
  25. {fractal_task_tools-0.0.3 → fractal_task_tools-0.0.4}/tests/test_extract_function.py +0 -0
  26. {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
  Metadata-Version: 2.2
2
2
  Name: fractal-task-tools
3
- Version: 0.0.3
3
+ Version: 0.0.4
4
4
  Summary: Shared tools for Fractal tasks
5
5
  Author-email: Tommaso Comparin <tommaso.comparin@exact-lab.it>
6
6
  License: BSD-3-Clause
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fractal-task-tools"
3
- version = "0.0.3"
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.3"
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
@@ -2,4 +2,4 @@ import logging
2
2
 
3
3
  logging.basicConfig(level=logging.INFO)
4
4
 
5
- __VERSION__ = "0.0.3"
5
+ __VERSION__ = "0.0.4"
@@ -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)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: fractal-task-tools
3
- Version: 0.0.3
3
+ Version: 0.0.4
4
4
  Summary: Shared tools for Fractal tasks
5
5
  Author-email: Tommaso Comparin <tommaso.comparin@exact-lab.it>
6
6
  License: BSD-3-Clause
@@ -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