synapse-sdk 1.0.0a16__tar.gz → 1.0.0a17__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 synapse-sdk might be problematic. Click here for more details.

Files changed (121) hide show
  1. {synapse_sdk-1.0.0a16/synapse_sdk.egg-info → synapse_sdk-1.0.0a17}/PKG-INFO +1 -1
  2. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/clients/backend/ml.py +1 -3
  3. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/neural_net/actions/train.py +18 -7
  4. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/cli/publish.py +2 -2
  5. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/utils/file.py +36 -8
  6. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17/synapse_sdk.egg-info}/PKG-INFO +1 -1
  7. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/.github/workflows/lint.yml +0 -0
  8. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/.github/workflows/pypi-publish.yml +0 -0
  9. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/.gitignore +0 -0
  10. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/.pre-commit-config.yaml +0 -0
  11. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/LICENSE +0 -0
  12. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/README.md +0 -0
  13. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/locale/en/LC_MESSAGES/messages.mo +0 -0
  14. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/locale/en/LC_MESSAGES/messages.po +0 -0
  15. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/locale/ko/LC_MESSAGES/messages.mo +0 -0
  16. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/locale/ko/LC_MESSAGES/messages.po +0 -0
  17. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/pyproject.toml +0 -0
  18. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/requirements.txt +0 -0
  19. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/setup.cfg +0 -0
  20. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/__init__.py +0 -0
  21. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/cli/__init__.py +0 -0
  22. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/cli/create_plugin.py +0 -0
  23. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/clients/__init__.py +0 -0
  24. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/clients/agent/__init__.py +0 -0
  25. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/clients/agent/core.py +0 -0
  26. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/clients/agent/ray.py +0 -0
  27. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/clients/agent/service.py +0 -0
  28. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/clients/backend/__init__.py +0 -0
  29. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/clients/backend/annotation.py +0 -0
  30. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/clients/backend/dataset.py +0 -0
  31. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/clients/backend/integration.py +0 -0
  32. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/clients/base.py +0 -0
  33. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/clients/exceptions.py +0 -0
  34. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/clients/ray/__init__.py +0 -0
  35. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/clients/ray/core.py +0 -0
  36. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/clients/ray/serve.py +0 -0
  37. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/clients/utils.py +0 -0
  38. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/i18n.py +0 -0
  39. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/loggers.py +0 -0
  40. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/__init__.py +0 -0
  41. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/__init__.py +0 -0
  42. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/base.py +0 -0
  43. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/data_validation/__init__.py +0 -0
  44. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/data_validation/actions/__init__.py +0 -0
  45. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/data_validation/actions/validation.py +0 -0
  46. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/data_validation/templates/config.yaml +0 -0
  47. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/data_validation/templates/plugin/__init__.py +0 -0
  48. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/data_validation/templates/plugin/validation.py +0 -0
  49. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/decorators.py +0 -0
  50. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/export/__init__.py +0 -0
  51. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/export/actions/__init__.py +0 -0
  52. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/export/actions/export.py +0 -0
  53. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/import/__init__.py +0 -0
  54. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/import/actions/__init__.py +0 -0
  55. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/import/actions/import.py +0 -0
  56. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/neural_net/__init__.py +0 -0
  57. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/neural_net/actions/__init__.py +0 -0
  58. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/neural_net/actions/deployment.py +0 -0
  59. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/neural_net/actions/inference.py +0 -0
  60. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/neural_net/actions/test.py +0 -0
  61. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/neural_net/templates/config.yaml +0 -0
  62. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/neural_net/templates/plugin/__init__.py +0 -0
  63. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/neural_net/templates/plugin/inference.py +0 -0
  64. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/neural_net/templates/plugin/test.py +0 -0
  65. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/neural_net/templates/plugin/train.py +0 -0
  66. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/post_annotation/__init__.py +0 -0
  67. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/post_annotation/actions/__init__.py +0 -0
  68. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/post_annotation/actions/post_annotation.py +0 -0
  69. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/post_annotation/templates/config.yaml +0 -0
  70. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/__init__.py +0 -0
  71. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/post_annotation.py +0 -0
  72. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/pre_annotation/__init__.py +0 -0
  73. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py +0 -0
  74. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation.py +0 -0
  75. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml +0 -0
  76. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/__init__.py +0 -0
  77. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/pre_annotation.py +0 -0
  78. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/registry.py +0 -0
  79. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/smart_tool/__init__.py +0 -0
  80. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/smart_tool/actions/__init__.py +0 -0
  81. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/smart_tool/actions/auto_label.py +0 -0
  82. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/smart_tool/templates/config.yaml +0 -0
  83. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/__init__.py +0 -0
  84. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/auto_label.py +0 -0
  85. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/categories/templates.py +0 -0
  86. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/cli/__init__.py +0 -0
  87. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/cli/run.py +0 -0
  88. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/enums.py +0 -0
  89. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/exceptions.py +0 -0
  90. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/models.py +0 -0
  91. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/templates/cookiecutter.json +0 -0
  92. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/templates/hooks/post_gen_project.py +0 -0
  93. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/templates/hooks/pre_prompt.py +0 -0
  94. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.env +0 -0
  95. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.env.dist +0 -0
  96. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.gitignore +0 -0
  97. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.pre-commit-config.yaml +0 -0
  98. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/README.md +0 -0
  99. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/config.yaml +0 -0
  100. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/main.py +0 -0
  101. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/plugin/__init__.py +0 -0
  102. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/pyproject.toml +0 -0
  103. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/requirements.txt +0 -0
  104. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/upload.py +0 -0
  105. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/plugins/utils.py +0 -0
  106. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/shared/__init__.py +0 -0
  107. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/shared/enums.py +0 -0
  108. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/utils/__init__.py +0 -0
  109. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/utils/debug.py +0 -0
  110. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/utils/module_loading.py +0 -0
  111. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/utils/pydantic/__init__.py +0 -0
  112. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/utils/pydantic/config.py +0 -0
  113. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/utils/pydantic/errors.py +0 -0
  114. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/utils/pydantic/validators.py +0 -0
  115. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/utils/storage.py +0 -0
  116. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk/utils/string.py +0 -0
  117. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk.egg-info/SOURCES.txt +0 -0
  118. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk.egg-info/dependency_links.txt +0 -0
  119. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk.egg-info/entry_points.txt +0 -0
  120. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk.egg-info/requires.txt +0 -0
  121. {synapse_sdk-1.0.0a16 → synapse_sdk-1.0.0a17}/synapse_sdk.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: synapse-sdk
3
- Version: 1.0.0a16
3
+ Version: 1.0.0a17
4
4
  Summary: synapse sdk
5
5
  Author-email: datamaker <developer@datamaker.io>
6
6
  License: MIT
@@ -9,9 +9,7 @@ class MLClientMixin(BaseClient):
9
9
 
10
10
  def get_model(self, pk, params=None, url_conversion=None):
11
11
  path = f'models/{pk}/'
12
- url_conversion = get_default_url_conversion(
13
- url_conversion, files_fields=['files', 'parent.files'], is_list=False
14
- )
12
+ url_conversion = get_default_url_conversion(url_conversion, files_fields=['file'], is_list=False)
15
13
  return self._get(path, params=params, url_conversion=url_conversion)
16
14
 
17
15
  def create_model(self, data):
@@ -12,7 +12,7 @@ from synapse_sdk.plugins.categories.base import Action
12
12
  from synapse_sdk.plugins.categories.decorators import register_action
13
13
  from synapse_sdk.plugins.enums import PluginCategory, RunMethod
14
14
  from synapse_sdk.plugins.models import Run
15
- from synapse_sdk.utils.file import archive
15
+ from synapse_sdk.utils.file import archive, get_temp_path, unarchive
16
16
  from synapse_sdk.utils.pydantic.validators import non_blank
17
17
 
18
18
 
@@ -83,10 +83,15 @@ class TrainAction(Action):
83
83
  self.run.log_message('Preparing dataset for training.')
84
84
  input_dataset = self.get_dataset()
85
85
 
86
+ # retrieve checkpoint
87
+ checkpoint = None
88
+ if self.params['checkpoint']:
89
+ self.run.log_message('Retrieving checkpoint.')
90
+ checkpoint = self.get_model(self.params['checkpoint'])
91
+
86
92
  # train dataset
87
93
  self.run.log_message('Starting model training.')
88
-
89
- result = self.entrypoint(self.run, input_dataset, hyperparameter)
94
+ result = self.entrypoint(self.run, input_dataset, hyperparameter, checkpoint=checkpoint)
90
95
 
91
96
  # upload model_data
92
97
  self.run.log_message('Registering model data.')
@@ -106,6 +111,7 @@ class TrainAction(Action):
106
111
  ground_truths, count_dataset = client.list_ground_truth_events(
107
112
  params={
108
113
  'fields': ['category', 'files', 'data'],
114
+ 'expand': ['data'],
109
115
  'ground_truth_dataset_versions': self.params['dataset'],
110
116
  },
111
117
  list_all=True,
@@ -120,11 +126,16 @@ class TrainAction(Action):
120
126
 
121
127
  return input_dataset
122
128
 
123
- def create_model(self, path):
124
- if not self.client:
125
- print(path)
126
- return None
129
+ def get_model(self, model_id):
130
+ model = self.client.get_model(model_id)
131
+ model_file = Path(model['file'])
132
+ output_path = get_temp_path(f'models/{model_file.stem}')
133
+ if not output_path.exists():
134
+ unarchive(model_file, output_path)
135
+ model['path'] = output_path
136
+ return model
127
137
 
138
+ def create_model(self, path):
128
139
  params = copy.deepcopy(self.params)
129
140
  configuration_fields = ['hyperparameter']
130
141
  configuration = {field: params.pop(field) for field in configuration_fields}
@@ -26,8 +26,8 @@ def publish(ctx, host, user_token, tenant, debug_modules):
26
26
 
27
27
  data = {'plugin': plugin_release.plugin, 'file': str(archive_path), 'debug': debug}
28
28
  if debug:
29
- if debug_modules:
30
- data['debug_meta'] = json.dumps({'modules': debug_modules.split(',')})
29
+ modules = debug_modules.split(',') if debug_modules else []
30
+ data['debug_meta'] = json.dumps({'modules': modules})
31
31
 
32
32
  client = BackendClient(host, user_token, tenant=tenant)
33
33
  client.create_plugin_release(data)
@@ -30,14 +30,17 @@ def download_file(url, path_download, name=None, coerce=None):
30
30
  return path
31
31
 
32
32
 
33
- def files_url_to_path(files, coerce=None):
33
+ def files_url_to_path(files, coerce=None, file_field=None):
34
34
  path_download = Path('/tmp/datamaker') / 'media'
35
35
  path_download.mkdir(parents=True, exist_ok=True)
36
- for file_name in files:
37
- if isinstance(files[file_name], str):
38
- files[file_name] = download_file(files[file_name], path_download, coerce=coerce)
39
- else:
40
- files[file_name]['path'] = download_file(files[file_name].pop('url'), path_download, coerce=coerce)
36
+ if file_field:
37
+ files[file_field] = download_file(files[file_field], path_download, coerce=coerce)
38
+ else:
39
+ for file_name in files:
40
+ if isinstance(files[file_name], str):
41
+ files[file_name] = download_file(files[file_name], path_download, coerce=coerce)
42
+ else:
43
+ files[file_name]['path'] = download_file(files[file_name].pop('url'), path_download, coerce=coerce)
41
44
 
42
45
 
43
46
  def files_url_to_path_from_objs(objs, files_fields, coerce=None, is_list=False, is_async=False):
@@ -51,7 +54,10 @@ def files_url_to_path_from_objs(objs, files_fields, coerce=None, is_list=False,
51
54
  for files_field in files_fields:
52
55
  try:
53
56
  files = reduce(operator.getitem, files_field.split('.'), obj)
54
- files_url_to_path(files, coerce=coerce)
57
+ if isinstance(files, str):
58
+ files_url_to_path(obj, coerce=coerce, file_field=files_field)
59
+ else:
60
+ files_url_to_path(files, coerce=coerce)
55
61
  except KeyError:
56
62
  pass
57
63
 
@@ -78,7 +84,7 @@ async def adownload_file(url, path_download, name=None, coerce=None):
78
84
 
79
85
 
80
86
  async def afiles_url_to_path(files, coerce=None):
81
- path_download = Path('/tmp/datamaker') / 'media'
87
+ path_download = get_temp_path('media')
82
88
  path_download.mkdir(parents=True, exist_ok=True)
83
89
  for file_name in files:
84
90
  if isinstance(files[file_name], str):
@@ -138,3 +144,25 @@ def archive(input_path, output_path):
138
144
  if file_path.is_file(): # Only add files, skip directories
139
145
  arcname = file_path.relative_to(input_path.parent)
140
146
  zipf.write(file_path, arcname)
147
+
148
+
149
+ def unarchive(file_path, output_path):
150
+ """
151
+ Unarchives a ZIP file to a given directory.
152
+
153
+ Parameters:
154
+ file_path (str | Path): The path to the ZIP file.
155
+ output_path (str): The directory where the files will be extracted.
156
+ """
157
+ output_path = Path(output_path)
158
+ output_path.mkdir(parents=True, exist_ok=True)
159
+
160
+ with zipfile.ZipFile(str(file_path), 'r') as zip_ref:
161
+ zip_ref.extractall(output_path)
162
+
163
+
164
+ def get_temp_path(sub_path=None):
165
+ path = Path('/tmp/datamaker')
166
+ if sub_path:
167
+ path = path / sub_path
168
+ return path
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: synapse-sdk
3
- Version: 1.0.0a16
3
+ Version: 1.0.0a17
4
4
  Summary: synapse sdk
5
5
  Author-email: datamaker <developer@datamaker.io>
6
6
  License: MIT
File without changes
File without changes
File without changes