synapse-sdk 1.0.0a14__tar.gz → 1.0.0a16__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.0a14/synapse_sdk.egg-info → synapse_sdk-1.0.0a16}/PKG-INFO +1 -1
  2. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/clients/base.py +4 -4
  3. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/base.py +9 -7
  4. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/cli/publish.py +2 -1
  5. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/models.py +8 -10
  6. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/utils/file.py +55 -2
  7. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16/synapse_sdk.egg-info}/PKG-INFO +1 -1
  8. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/.github/workflows/lint.yml +0 -0
  9. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/.github/workflows/pypi-publish.yml +0 -0
  10. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/.gitignore +0 -0
  11. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/.pre-commit-config.yaml +0 -0
  12. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/LICENSE +0 -0
  13. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/README.md +0 -0
  14. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/locale/en/LC_MESSAGES/messages.mo +0 -0
  15. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/locale/en/LC_MESSAGES/messages.po +0 -0
  16. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/locale/ko/LC_MESSAGES/messages.mo +0 -0
  17. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/locale/ko/LC_MESSAGES/messages.po +0 -0
  18. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/pyproject.toml +0 -0
  19. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/requirements.txt +0 -0
  20. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/setup.cfg +0 -0
  21. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/__init__.py +0 -0
  22. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/cli/__init__.py +0 -0
  23. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/cli/create_plugin.py +0 -0
  24. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/clients/__init__.py +0 -0
  25. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/clients/agent/__init__.py +0 -0
  26. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/clients/agent/core.py +0 -0
  27. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/clients/agent/ray.py +0 -0
  28. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/clients/agent/service.py +0 -0
  29. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/clients/backend/__init__.py +0 -0
  30. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/clients/backend/annotation.py +0 -0
  31. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/clients/backend/dataset.py +0 -0
  32. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/clients/backend/integration.py +0 -0
  33. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/clients/backend/ml.py +0 -0
  34. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/clients/exceptions.py +0 -0
  35. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/clients/ray/__init__.py +0 -0
  36. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/clients/ray/core.py +0 -0
  37. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/clients/ray/serve.py +0 -0
  38. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/clients/utils.py +0 -0
  39. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/i18n.py +0 -0
  40. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/loggers.py +0 -0
  41. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/__init__.py +0 -0
  42. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/__init__.py +0 -0
  43. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/data_validation/__init__.py +0 -0
  44. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/data_validation/actions/__init__.py +0 -0
  45. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/data_validation/actions/validation.py +0 -0
  46. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/data_validation/templates/config.yaml +0 -0
  47. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/data_validation/templates/plugin/__init__.py +0 -0
  48. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/data_validation/templates/plugin/validation.py +0 -0
  49. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/decorators.py +0 -0
  50. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/export/__init__.py +0 -0
  51. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/export/actions/__init__.py +0 -0
  52. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/export/actions/export.py +0 -0
  53. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/import/__init__.py +0 -0
  54. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/import/actions/__init__.py +0 -0
  55. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/import/actions/import.py +0 -0
  56. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/neural_net/__init__.py +0 -0
  57. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/neural_net/actions/__init__.py +0 -0
  58. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/neural_net/actions/deployment.py +0 -0
  59. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/neural_net/actions/inference.py +0 -0
  60. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/neural_net/actions/test.py +0 -0
  61. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/neural_net/actions/train.py +0 -0
  62. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/neural_net/templates/config.yaml +0 -0
  63. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/neural_net/templates/plugin/__init__.py +0 -0
  64. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/neural_net/templates/plugin/inference.py +0 -0
  65. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/neural_net/templates/plugin/test.py +0 -0
  66. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/neural_net/templates/plugin/train.py +0 -0
  67. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/post_annotation/__init__.py +0 -0
  68. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/post_annotation/actions/__init__.py +0 -0
  69. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/post_annotation/actions/post_annotation.py +0 -0
  70. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/post_annotation/templates/config.yaml +0 -0
  71. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/__init__.py +0 -0
  72. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/post_annotation.py +0 -0
  73. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/pre_annotation/__init__.py +0 -0
  74. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py +0 -0
  75. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation.py +0 -0
  76. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml +0 -0
  77. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/__init__.py +0 -0
  78. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/pre_annotation.py +0 -0
  79. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/registry.py +0 -0
  80. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/smart_tool/__init__.py +0 -0
  81. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/smart_tool/actions/__init__.py +0 -0
  82. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/smart_tool/actions/auto_label.py +0 -0
  83. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/smart_tool/templates/config.yaml +0 -0
  84. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/__init__.py +0 -0
  85. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/auto_label.py +0 -0
  86. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/categories/templates.py +0 -0
  87. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/cli/__init__.py +0 -0
  88. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/cli/run.py +0 -0
  89. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/enums.py +0 -0
  90. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/exceptions.py +0 -0
  91. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/templates/cookiecutter.json +0 -0
  92. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/templates/hooks/post_gen_project.py +0 -0
  93. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/templates/hooks/pre_prompt.py +0 -0
  94. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.env +0 -0
  95. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.env.dist +0 -0
  96. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.gitignore +0 -0
  97. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.pre-commit-config.yaml +0 -0
  98. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/README.md +0 -0
  99. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/config.yaml +0 -0
  100. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/main.py +0 -0
  101. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/plugin/__init__.py +0 -0
  102. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/pyproject.toml +0 -0
  103. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/requirements.txt +0 -0
  104. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/upload.py +0 -0
  105. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/plugins/utils.py +0 -0
  106. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/shared/__init__.py +0 -0
  107. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/shared/enums.py +0 -0
  108. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/utils/__init__.py +0 -0
  109. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/utils/debug.py +0 -0
  110. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/utils/module_loading.py +0 -0
  111. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/utils/pydantic/__init__.py +0 -0
  112. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/utils/pydantic/config.py +0 -0
  113. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/utils/pydantic/errors.py +0 -0
  114. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/utils/pydantic/validators.py +0 -0
  115. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/utils/storage.py +0 -0
  116. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk/utils/string.py +0 -0
  117. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk.egg-info/SOURCES.txt +0 -0
  118. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk.egg-info/dependency_links.txt +0 -0
  119. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk.egg-info/entry_points.txt +0 -0
  120. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/synapse_sdk.egg-info/requires.txt +0 -0
  121. {synapse_sdk-1.0.0a14 → synapse_sdk-1.0.0a16}/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.0a14
3
+ Version: 1.0.0a16
4
4
  Summary: synapse sdk
5
5
  Author-email: datamaker <developer@datamaker.io>
6
6
  License: MIT
@@ -62,7 +62,7 @@ class BaseClient:
62
62
  response = self._request('get', path, **kwargs)
63
63
  if url_conversion:
64
64
  if url_conversion['is_list']:
65
- files_url_to_path_from_objs(response['results'], **url_conversion)
65
+ files_url_to_path_from_objs(response['results'], **url_conversion, is_async=True)
66
66
  else:
67
67
  files_url_to_path_from_objs(response, **url_conversion)
68
68
  return response
@@ -80,14 +80,14 @@ class BaseClient:
80
80
  return self._request('delete', path, **kwargs)
81
81
 
82
82
  def _list(self, path, url_conversion=None, list_all=False, **kwargs):
83
- response = self._get(path, url_conversion, **kwargs)
83
+ response = self._get(path, **kwargs)
84
84
  if list_all:
85
85
  return self._list_all(path, url_conversion, **kwargs), response['count']
86
86
  else:
87
87
  return response
88
88
 
89
- def _list_all(self, path, url_conversion=None, **kwargs):
90
- response = self._get(path, url_conversion, **kwargs)
89
+ def _list_all(self, path, url_conversion=None, params=None, **kwargs):
90
+ response = self._get(path, url_conversion, params=params, **kwargs)
91
91
  yield from response['results']
92
92
  if response['next']:
93
93
  yield from self._list_all(response['next'], url_conversion, **kwargs)
@@ -92,13 +92,15 @@ class Action:
92
92
  @property
93
93
  def debug_modules(self):
94
94
  debug_modules = []
95
- for module_path in self.envs.get('SYNAPSE_DEBUG_MODULES', '').split(','):
96
- if module_path.startswith('https://'): # TODO ray에서 지원하는 remote uri 형식 (https, s3, gs) 모두 지원
97
- module_url = module_path
98
- else:
99
- module_url = build_and_upload(module_path, self.plugin_storage_url)
100
- debug_modules.append(module_url)
101
- self.envs['SYNAPSE_DEBUG_MODULES'] = ','.join(debug_modules)
95
+ if self.envs.get('SYNAPSE_DEBUG_MODULES'):
96
+ for module_path in self.envs['SYNAPSE_DEBUG_MODULES'].split(','):
97
+ # TODO ray에서 지원하는 remote uri 형식 (https, s3, gs) 모두 지원
98
+ if module_path.startswith('https://'):
99
+ module_url = module_path
100
+ else:
101
+ module_url = build_and_upload(module_path, self.plugin_storage_url)
102
+ debug_modules.append(module_url)
103
+ self.envs['SYNAPSE_DEBUG_MODULES'] = ','.join(debug_modules)
102
104
  return debug_modules
103
105
 
104
106
  def get_run(self):
@@ -26,7 +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
- data['debug_meta'] = json.dumps({'modules': debug_modules.split(',')})
29
+ if debug_modules:
30
+ data['debug_meta'] = json.dumps({'modules': debug_modules.split(',')})
30
31
 
31
32
  client = BackendClient(host, user_token, tenant=tenant)
32
33
  client.create_plugin_release(data)
@@ -86,28 +86,26 @@ class Run:
86
86
  logger = None
87
87
  job_id = None
88
88
  context = None
89
+ client = None
89
90
 
90
91
  def __init__(self, job_id, context):
91
92
  self.job_id = job_id
92
93
  self.context = context
94
+ self.client = BackendClient(
95
+ self.context['envs']['SYNAPSE_PLUGIN_RUN_HOST'],
96
+ self.context['envs']['SYNAPSE_PLUGIN_RUN_USER_TOKEN'],
97
+ self.context['envs']['SYNAPSE_PLUGIN_RUN_TENANT'],
98
+ )
93
99
  self.set_logger()
94
100
 
95
101
  def set_logger(self):
96
102
  kwargs = {'progress_categories': self.context['progress_categories']}
103
+
97
104
  if self.job_id:
98
- client = BackendClient(
99
- self.context['envs']['SYNAPSE_PLUGIN_RUN_HOST'],
100
- self.context['envs']['SYNAPSE_PLUGIN_RUN_USER_TOKEN'],
101
- self.context['envs']['SYNAPSE_PLUGIN_RUN_TENANT'],
102
- )
103
- self.logger = BackendLogger(client, self.job_id, **kwargs)
105
+ self.logger = BackendLogger(self.client, self.job_id, **kwargs)
104
106
  else:
105
107
  self.logger = ConsoleLogger(**kwargs)
106
108
 
107
- @property
108
- def client(self):
109
- return getattr(self.logger, 'client', None)
110
-
111
109
  def set_progress(self, current, total, category=''):
112
110
  self.logger.set_progress(current, total, category)
113
111
 
@@ -1,3 +1,4 @@
1
+ import asyncio
1
2
  import hashlib
2
3
  import json
3
4
  import operator
@@ -6,6 +7,7 @@ from functools import reduce
6
7
  from pathlib import Path
7
8
  from urllib.parse import urlparse
8
9
 
10
+ import aiohttp
9
11
  import requests
10
12
  import yaml
11
13
 
@@ -38,18 +40,69 @@ def files_url_to_path(files, coerce=None):
38
40
  files[file_name]['path'] = download_file(files[file_name].pop('url'), path_download, coerce=coerce)
39
41
 
40
42
 
41
- def files_url_to_path_from_objs(objs, files_fields, coerce=None, is_list=False):
43
+ def files_url_to_path_from_objs(objs, files_fields, coerce=None, is_list=False, is_async=False):
44
+ if is_async:
45
+ asyncio.run(afiles_url_to_path_from_objs(objs, files_fields, coerce=coerce, is_list=is_list))
46
+ else:
47
+ if not is_list:
48
+ objs = [objs]
49
+
50
+ for obj in objs:
51
+ for files_field in files_fields:
52
+ try:
53
+ files = reduce(operator.getitem, files_field.split('.'), obj)
54
+ files_url_to_path(files, coerce=coerce)
55
+ except KeyError:
56
+ pass
57
+
58
+
59
+ async def adownload_file(url, path_download, name=None, coerce=None):
60
+ if name:
61
+ name += Path(url).suffix
62
+ else:
63
+ name = Path(url).name
64
+
65
+ name = urlparse(name).path
66
+ path = Path(path_download) / name
67
+ if not path.is_file():
68
+ async with aiohttp.ClientSession() as session:
69
+ async with session.get(url) as response:
70
+ with open(str(path), 'wb') as file:
71
+ while chunk := await response.content.read(1024 * 64):
72
+ file.write(chunk)
73
+
74
+ if coerce:
75
+ path = coerce(path)
76
+
77
+ return path
78
+
79
+
80
+ async def afiles_url_to_path(files, coerce=None):
81
+ path_download = Path('/tmp/datamaker') / 'media'
82
+ path_download.mkdir(parents=True, exist_ok=True)
83
+ for file_name in files:
84
+ if isinstance(files[file_name], str):
85
+ files[file_name] = await adownload_file(files[file_name], path_download, coerce=coerce)
86
+ else:
87
+ files[file_name]['path'] = await adownload_file(files[file_name].pop('url'), path_download, coerce=coerce)
88
+
89
+
90
+ async def afiles_url_to_path_from_objs(objs, files_fields, coerce=None, is_list=False):
42
91
  if not is_list:
43
92
  objs = [objs]
44
93
 
94
+ tasks = []
95
+
45
96
  for obj in objs:
46
97
  for files_field in files_fields:
47
98
  try:
48
99
  files = reduce(operator.getitem, files_field.split('.'), obj)
49
- files_url_to_path(files, coerce=coerce)
100
+ tasks.append(afiles_url_to_path(files, coerce=coerce))
50
101
  except KeyError:
51
102
  pass
52
103
 
104
+ await asyncio.gather(*tasks)
105
+
53
106
 
54
107
  def get_dict_from_file(file_path):
55
108
  if isinstance(file_path, str):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: synapse-sdk
3
- Version: 1.0.0a14
3
+ Version: 1.0.0a16
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