digitalhub-runtime-python 0.15.0b6__tar.gz → 0.15.0b7__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 (85) hide show
  1. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/PKG-INFO +1 -1
  2. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/utils/configuration.py +31 -34
  3. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/pyproject.toml +2 -2
  4. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/.github/scripts/bump.sh +0 -0
  5. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/.github/scripts/changelog.sh +0 -0
  6. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/.github/scripts/cliff.toml +0 -0
  7. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/.github/workflows/release.yml +0 -0
  8. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/.github/workflows/run_local_test.yml +0 -0
  9. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/.github/workflows/test_release.yml +0 -0
  10. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/.gitignore +0 -0
  11. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/AUTHORS +0 -0
  12. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/CONTRIBUTING +0 -0
  13. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/COPYRIGHT +0 -0
  14. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/LICENSE +0 -0
  15. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/README.md +0 -0
  16. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/__init__.py +0 -0
  17. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/__init__.py +0 -0
  18. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/_base/__init__.py +0 -0
  19. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/_base/runtime_entity/__init__.py +0 -0
  20. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/_base/runtime_entity/builder.py +0 -0
  21. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/_commons/__init__.py +0 -0
  22. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/_commons/enums.py +0 -0
  23. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/function/__init__.py +0 -0
  24. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/function/python/__init__.py +0 -0
  25. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/function/python/builder.py +0 -0
  26. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/function/python/entity.py +0 -0
  27. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/function/python/models.py +0 -0
  28. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/function/python/spec.py +0 -0
  29. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/function/python/status.py +0 -0
  30. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/function/python/utils.py +0 -0
  31. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/__init__.py +0 -0
  32. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/_base/__init__.py +0 -0
  33. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/_base/builder.py +0 -0
  34. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/_base/entity.py +0 -0
  35. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/_base/spec.py +0 -0
  36. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/_base/status.py +0 -0
  37. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/_base/utils.py +0 -0
  38. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/build/__init__.py +0 -0
  39. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/build/builder.py +0 -0
  40. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/build/entity.py +0 -0
  41. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/build/spec.py +0 -0
  42. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/build/status.py +0 -0
  43. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/job/__init__.py +0 -0
  44. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/job/builder.py +0 -0
  45. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/job/entity.py +0 -0
  46. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/job/spec.py +0 -0
  47. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/job/status.py +0 -0
  48. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/serve/__init__.py +0 -0
  49. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/serve/builder.py +0 -0
  50. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/serve/entity.py +0 -0
  51. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/serve/spec.py +0 -0
  52. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/run/serve/status.py +0 -0
  53. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/task/__init__.py +0 -0
  54. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/task/build/__init__.py +0 -0
  55. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/task/build/builder.py +0 -0
  56. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/task/build/entity.py +0 -0
  57. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/task/build/spec.py +0 -0
  58. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/task/build/status.py +0 -0
  59. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/task/job/__init__.py +0 -0
  60. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/task/job/builder.py +0 -0
  61. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/task/job/entity.py +0 -0
  62. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/task/job/models.py +0 -0
  63. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/task/job/spec.py +0 -0
  64. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/task/job/status.py +0 -0
  65. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/task/serve/__init__.py +0 -0
  66. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/task/serve/builder.py +0 -0
  67. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/task/serve/entity.py +0 -0
  68. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/task/serve/spec.py +0 -0
  69. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/entities/task/serve/status.py +0 -0
  70. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/runtimes/__init__.py +0 -0
  71. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/runtimes/builder.py +0 -0
  72. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/runtimes/runtime.py +0 -0
  73. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/utils/inputs.py +0 -0
  74. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/utils/outputs.py +0 -0
  75. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/digitalhub_runtime_python/utils/utils.py +0 -0
  76. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/test/instances/entities/function/function-python-git.json +0 -0
  77. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/test/instances/entities/function/function-python-local.json +0 -0
  78. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/test/instances/entities/function/function-python-zip.json +0 -0
  79. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/test/instances/entities/run/run-python+build:run.json +0 -0
  80. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/test/instances/entities/run/run-python+job:run.json +0 -0
  81. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/test/instances/entities/run/run-python+serve:run.json +0 -0
  82. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/test/instances/entities/task/task-python+build.json +0 -0
  83. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/test/instances/entities/task/task-python+job.json +0 -0
  84. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/test/instances/entities/task/task-python+serve.json +0 -0
  85. {digitalhub_runtime_python-0.15.0b6 → digitalhub_runtime_python-0.15.0b7}/test/instances/test_validate.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: digitalhub-runtime-python
3
- Version: 0.15.0b6
3
+ Version: 0.15.0b7
4
4
  Summary: Python runtime for DHCore
5
5
  Project-URL: Homepage, https://github.com/scc-digitalhub/digitalhub-sdk-runtime-python
6
6
  Author-email: Fondazione Bruno Kessler <digitalhub@fbk.eu>, Matteo Martini <mmartini@fbk.eu>
@@ -4,8 +4,9 @@
4
4
 
5
5
  from __future__ import annotations
6
6
 
7
+ from importlib import import_module
7
8
  from pathlib import Path
8
- from typing import Callable, Union
9
+ from typing import Callable
9
10
 
10
11
  from digitalhub.stores.data.api import get_store
11
12
  from digitalhub.utils.generic_utils import (
@@ -19,10 +20,10 @@ from digitalhub.utils.logger import LOGGER
19
20
  from digitalhub.utils.uri_utils import (
20
21
  get_filename_from_uri,
21
22
  has_git_scheme,
22
- has_local_scheme,
23
23
  has_remote_scheme,
24
24
  has_s3_scheme,
25
25
  has_zip_scheme,
26
+ has_local_scheme
26
27
  )
27
28
 
28
29
  DEFAULT_PY_FILE = "main.py"
@@ -276,52 +277,43 @@ def save_function_source(path: Path, source_spec: dict) -> Path:
276
277
  raise RuntimeError(f"Unable to collect source from: {source}")
277
278
 
278
279
 
279
- def _get_func_path_remote(source_path: Path, source_spec: dict) -> tuple[Path, str]:
280
+ def _get_function_to_import(handler: str, source_code: str | None) -> tuple[str, str]:
280
281
  """
281
- Get function path and name from handler for remote execution.
282
+ Get function name from handler string.
282
283
 
283
284
  Parameters
284
285
  ----------
285
- source_path : Path
286
- Root path where the function source is located.
287
- source_spec : dict
288
- Function source spec.
286
+ handler : str
287
+ Function handler in format 'module:function' or 'path.to.module:function'.
288
+ source_code : str | None
289
+ Source code (used to infer function name if handler is just a function name).
289
290
 
290
291
  Returns
291
292
  -------
292
- tuple[Path, str]
293
- Function path and function name.
293
+ tuple
294
+ Function module and function name.
294
295
  """
295
- handler_path, function_name = _parse_handler(source_spec.get("handler"))
296
-
297
- # If no handler path, try to get from source
298
- if handler_path == Path(""):
299
- # If source is None (e.g. whan code is inline), use default main.py
300
- if (source := source_spec.get("source")) is None:
301
- return source_path / Path(DEFAULT_PY_FILE), function_name
302
-
303
- # If source has local scheme, use it directly
304
- if has_local_scheme(source):
305
- return source_path / Path(source), function_name
306
-
307
- # Otherwise, use default main.py
308
- return source_path / Path(DEFAULT_PY_FILE), function_name
296
+ # If handler is not specified, assume function module is in main
297
+ try:
298
+ function_module, function_name = handler.split(":")
299
+ except ValueError:
300
+ function_name = handler
301
+ if source_code is not None and has_local_scheme(source_code):
302
+ function_module = get_filename_from_uri(source_code).removesuffix(".py")
303
+ else:
304
+ function_module = DEFAULT_PY_FILE.removesuffix(".py")
309
305
 
310
- # If handler path is given, use it
311
- return (source_path / handler_path).with_suffix(".py"), function_name
306
+ return function_module, function_name
312
307
 
313
308
 
314
309
  def import_function_and_init_from_source(
315
- path: Path,
316
310
  source_spec: dict,
317
- ) -> tuple[Callable, Union[Callable, None]]:
311
+ ) -> tuple[Callable, Callable | None]:
318
312
  """
319
313
  Import main function and optional init function from source.
320
314
 
321
315
  Parameters
322
316
  ----------
323
- path : Path
324
- Root path where the function source is downloaded.
325
317
  source_spec : dict
326
318
  Function source spec.
327
319
 
@@ -330,14 +322,19 @@ def import_function_and_init_from_source(
330
322
  tuple
331
323
  Main function and optional init function.
332
324
  """
333
- # Get function path and import main function
334
- function_path, handler_name = _get_func_path_remote(path, source_spec)
335
- main_function = _import_function_from_path(function_path, handler_name)
325
+ handler = source_spec.get("handler")
326
+ source_code = source_spec.get("source")
327
+
328
+ function_module, function_name = _get_function_to_import(handler, source_code)
329
+
330
+ # Import module and get main function
331
+ module = import_module(function_module)
332
+ main_function = getattr(module, function_name)
336
333
 
337
334
  # Import init function if specified
338
335
  init_function: Callable | None = None
339
336
  init_handler: str | None = source_spec.get("init_function")
340
337
  if init_handler is not None:
341
- init_function = _import_function_from_path(function_path, init_handler)
338
+ init_function = getattr(module, init_handler)
342
339
 
343
340
  return main_function, init_function
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "digitalhub-runtime-python"
7
- version = "0.15.0b6"
7
+ version = "0.15.0b7"
8
8
  description = "Python runtime for DHCore"
9
9
  readme = "README.md"
10
10
  authors = [
@@ -51,7 +51,7 @@ docstring-code-line-length = 120
51
51
  convention = "numpy"
52
52
 
53
53
  [tool.bumpver]
54
- current_version = "0.15.0b6"
54
+ current_version = "0.15.0b7"
55
55
  version_pattern = "MAJOR.MINOR.PATCH[PYTAGNUM]"
56
56
  commit_message = "Bump version {old_version} -> {new_version}"
57
57
  commit = false