synapse-sdk 1.0.0a27__tar.gz → 1.0.0a29__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 (132) hide show
  1. {synapse_sdk-1.0.0a27/synapse_sdk.egg-info → synapse_sdk-1.0.0a29}/PKG-INFO +1 -1
  2. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/cli/alias/utils.py +8 -1
  3. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/cli/plugin/__init__.py +2 -2
  4. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/clients/backend/integration.py +8 -0
  5. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/loggers.py +9 -2
  6. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/neural_net/actions/train.py +5 -0
  7. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/models.py +2 -2
  8. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/utils/file.py +35 -0
  9. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29/synapse_sdk.egg-info}/PKG-INFO +1 -1
  10. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/.github/workflows/lint.yml +0 -0
  11. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/.github/workflows/pypi-publish.yml +0 -0
  12. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/.gitignore +0 -0
  13. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/.pre-commit-config.yaml +0 -0
  14. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/LICENSE +0 -0
  15. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/README.md +0 -0
  16. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/locale/en/LC_MESSAGES/messages.mo +0 -0
  17. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/locale/en/LC_MESSAGES/messages.po +0 -0
  18. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/locale/ko/LC_MESSAGES/messages.mo +0 -0
  19. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/locale/ko/LC_MESSAGES/messages.po +0 -0
  20. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/pyproject.toml +0 -0
  21. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/requirements.txt +0 -0
  22. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/setup.cfg +0 -0
  23. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/__init__.py +0 -0
  24. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/cli/__init__.py +0 -0
  25. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/cli/alias/__init__.py +0 -0
  26. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/cli/alias/create.py +0 -0
  27. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/cli/alias/dataclass.py +0 -0
  28. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/cli/alias/default.py +0 -0
  29. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/cli/alias/delete.py +0 -0
  30. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/cli/alias/list.py +0 -0
  31. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/cli/alias/read.py +0 -0
  32. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/cli/alias/update.py +0 -0
  33. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/cli/plugin/create.py +0 -0
  34. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/cli/plugin/publish.py +0 -0
  35. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/cli/plugin/run.py +0 -0
  36. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/clients/__init__.py +0 -0
  37. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/clients/agent/__init__.py +0 -0
  38. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/clients/agent/core.py +0 -0
  39. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/clients/agent/ray.py +0 -0
  40. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/clients/agent/service.py +0 -0
  41. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/clients/backend/__init__.py +0 -0
  42. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/clients/backend/annotation.py +0 -0
  43. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/clients/backend/core.py +0 -0
  44. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/clients/backend/dataset.py +0 -0
  45. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/clients/backend/ml.py +0 -0
  46. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/clients/base.py +0 -0
  47. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/clients/exceptions.py +0 -0
  48. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/clients/ray/__init__.py +0 -0
  49. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/clients/ray/core.py +0 -0
  50. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/clients/ray/serve.py +0 -0
  51. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/clients/utils.py +0 -0
  52. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/i18n.py +0 -0
  53. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/__init__.py +0 -0
  54. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/__init__.py +0 -0
  55. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/base.py +0 -0
  56. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/data_validation/__init__.py +0 -0
  57. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/data_validation/actions/__init__.py +0 -0
  58. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/data_validation/actions/validation.py +0 -0
  59. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/data_validation/templates/config.yaml +0 -0
  60. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/data_validation/templates/plugin/__init__.py +0 -0
  61. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/data_validation/templates/plugin/validation.py +0 -0
  62. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/decorators.py +0 -0
  63. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/export/__init__.py +0 -0
  64. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/export/actions/__init__.py +0 -0
  65. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/export/actions/export.py +0 -0
  66. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/import/__init__.py +0 -0
  67. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/import/actions/__init__.py +0 -0
  68. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/import/actions/import.py +0 -0
  69. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/neural_net/__init__.py +0 -0
  70. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/neural_net/actions/__init__.py +0 -0
  71. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/neural_net/actions/deployment.py +0 -0
  72. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/neural_net/actions/inference.py +0 -0
  73. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/neural_net/actions/test.py +0 -0
  74. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/neural_net/base/__init__.py +0 -0
  75. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/neural_net/base/inference.py +0 -0
  76. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/neural_net/templates/config.yaml +0 -0
  77. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/neural_net/templates/plugin/__init__.py +0 -0
  78. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/neural_net/templates/plugin/inference.py +0 -0
  79. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/neural_net/templates/plugin/test.py +0 -0
  80. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/neural_net/templates/plugin/train.py +0 -0
  81. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/post_annotation/__init__.py +0 -0
  82. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/post_annotation/actions/__init__.py +0 -0
  83. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/post_annotation/actions/post_annotation.py +0 -0
  84. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/post_annotation/templates/config.yaml +0 -0
  85. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/__init__.py +0 -0
  86. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/post_annotation/templates/plugin/post_annotation.py +0 -0
  87. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/pre_annotation/__init__.py +0 -0
  88. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/pre_annotation/actions/__init__.py +0 -0
  89. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/pre_annotation/actions/pre_annotation.py +0 -0
  90. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/pre_annotation/templates/config.yaml +0 -0
  91. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/__init__.py +0 -0
  92. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/pre_annotation/templates/plugin/pre_annotation.py +0 -0
  93. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/registry.py +0 -0
  94. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/smart_tool/__init__.py +0 -0
  95. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/smart_tool/actions/__init__.py +0 -0
  96. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/smart_tool/actions/auto_label.py +0 -0
  97. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/smart_tool/templates/config.yaml +0 -0
  98. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/__init__.py +0 -0
  99. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/smart_tool/templates/plugin/auto_label.py +0 -0
  100. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/categories/templates.py +0 -0
  101. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/enums.py +0 -0
  102. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/exceptions.py +0 -0
  103. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/templates/cookiecutter.json +0 -0
  104. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/templates/hooks/post_gen_project.py +0 -0
  105. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/templates/hooks/pre_prompt.py +0 -0
  106. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.gitignore +0 -0
  107. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/.pre-commit-config.yaml +0 -0
  108. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/README.md +0 -0
  109. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/config.yaml +0 -0
  110. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/plugin/__init__.py +0 -0
  111. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/pyproject.toml +0 -0
  112. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/templates/synapse-{{cookiecutter.plugin_code}}-plugin/requirements.txt +0 -0
  113. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/upload.py +0 -0
  114. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/plugins/utils.py +0 -0
  115. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/shared/__init__.py +0 -0
  116. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/shared/enums.py +0 -0
  117. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/types.py +0 -0
  118. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/utils/__init__.py +0 -0
  119. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/utils/debug.py +0 -0
  120. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/utils/module_loading.py +0 -0
  121. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/utils/network.py +0 -0
  122. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/utils/pydantic/__init__.py +0 -0
  123. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/utils/pydantic/config.py +0 -0
  124. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/utils/pydantic/errors.py +0 -0
  125. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/utils/pydantic/validators.py +0 -0
  126. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/utils/storage.py +0 -0
  127. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk/utils/string.py +0 -0
  128. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk.egg-info/SOURCES.txt +0 -0
  129. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk.egg-info/dependency_links.txt +0 -0
  130. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk.egg-info/entry_points.txt +0 -0
  131. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk.egg-info/requires.txt +0 -0
  132. {synapse_sdk-1.0.0a27 → synapse_sdk-1.0.0a29}/synapse_sdk.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: synapse-sdk
3
- Version: 1.0.0a27
3
+ Version: 1.0.0a29
4
4
  Summary: synapse sdk
5
5
  Author-email: datamaker <developer@datamaker.io>
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  from pathlib import Path
2
2
 
3
- from dotenv import dotenv_values, set_key, unset_key
3
+ from dotenv import dotenv_values, load_dotenv, set_key, unset_key
4
4
 
5
5
  CONFIG_DIR = Path.home() / '.config' / 'synapse_alias'
6
6
  DEFAULT_FILE = CONFIG_DIR / '__default__'
@@ -41,6 +41,7 @@ def delete_alias_file(alias_name):
41
41
 
42
42
 
43
43
  def get_default_alias():
44
+ ensure_config_dir()
44
45
  if DEFAULT_FILE.exists():
45
46
  default_data = dotenv_values(DEFAULT_FILE)
46
47
  return default_data.get('DEFAULT_ALIAS')
@@ -52,3 +53,9 @@ def set_default_alias(alias_name):
52
53
  ensure_config_dir()
53
54
  with open(DEFAULT_FILE, 'w') as f:
54
55
  f.write(f'DEFAULT_ALIAS={alias_name}\n')
56
+
57
+
58
+ def load_dotenv_default_alias():
59
+ default_alias = get_default_alias()
60
+ if default_alias is not None:
61
+ load_dotenv(CONFIG_DIR / default_alias)
@@ -3,14 +3,14 @@ import os
3
3
  import click
4
4
  from dotenv import load_dotenv
5
5
 
6
- from synapse_sdk.cli.alias.utils import CONFIG_DIR, get_default_alias
6
+ from synapse_sdk.cli.alias.utils import load_dotenv_default_alias
7
7
  from synapse_sdk.i18n import gettext as _
8
8
 
9
9
  from .create import create
10
10
  from .publish import publish
11
11
  from .run import run
12
12
 
13
- load_dotenv(CONFIG_DIR / get_default_alias())
13
+ load_dotenv_default_alias()
14
14
  load_dotenv(os.path.join(os.getcwd(), '.env'), override=True)
15
15
 
16
16
 
@@ -1,4 +1,5 @@
1
1
  from synapse_sdk.clients.base import BaseClient
2
+ from synapse_sdk.utils.file import convert_file_to_base64
2
3
 
3
4
 
4
5
  class IntegrationClientMixin(BaseClient):
@@ -60,6 +61,13 @@ class IntegrationClientMixin(BaseClient):
60
61
 
61
62
  def create_logs(self, data):
62
63
  path = 'logs/'
64
+ if not isinstance(data, list):
65
+ data = [data]
66
+
67
+ for item in data:
68
+ if 'file' in item:
69
+ item['file'] = convert_file_to_base64(item['file'])
70
+
63
71
  return self._post(path, data=data)
64
72
 
65
73
  def create_serve_application(self, data):
@@ -68,13 +68,16 @@ class BaseLogger:
68
68
 
69
69
  return progress
70
70
 
71
+ def log(self, action, data, file=None):
72
+ raise NotImplementedError
73
+
71
74
 
72
75
  class ConsoleLogger(BaseLogger):
73
76
  def set_progress(self, current, total, category=None):
74
77
  super().set_progress(current, total, category=category)
75
78
  print(self.get_current_progress())
76
79
 
77
- def log(self, action, data):
80
+ def log(self, action, data, file=None):
78
81
  print(action, data)
79
82
 
80
83
 
@@ -99,7 +102,7 @@ class BackendLogger(BaseLogger):
99
102
  except ClientError:
100
103
  pass
101
104
 
102
- def log(self, event, data):
105
+ def log(self, event, data, file=None):
103
106
  print(event, data)
104
107
 
105
108
  log = {
@@ -108,7 +111,11 @@ class BackendLogger(BaseLogger):
108
111
  'datetime': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f'),
109
112
  'job': self.job_id,
110
113
  }
114
+ if file:
115
+ log['file'] = file
116
+
111
117
  self.logs_queue.append(log)
118
+
112
119
  try:
113
120
  self.client.create_logs(self.logs_queue)
114
121
  self.logs_queue.clear()
@@ -18,8 +18,13 @@ from synapse_sdk.utils.pydantic.validators import non_blank
18
18
 
19
19
  class TrainRun(Run):
20
20
  def log_metric(self, category, key, value, **metrics):
21
+ # TODO validate input via plugin config
21
22
  self.log('metric', {'category': category, 'key': key, 'value': value, 'metrics': metrics})
22
23
 
24
+ def log_visualization(self, category, group, image, **meta):
25
+ # TODO validate input via plugin config
26
+ self.log('visualization', {'category': category, 'group': group, **meta}, file=image)
27
+
23
28
 
24
29
  class Hyperparameter(BaseModel):
25
30
  batch_size: int
@@ -113,8 +113,8 @@ class Run:
113
113
  def set_progress(self, current, total, category=''):
114
114
  self.logger.set_progress(current, total, category)
115
115
 
116
- def log(self, event, data):
117
- self.logger.log(event, data)
116
+ def log(self, event, data, file=None):
117
+ self.logger.log(event, data, file=file)
118
118
 
119
119
  def log_message(self, message, context=Context.INFO.value):
120
120
  self.logger.log('message', {'context': context, 'content': message})
@@ -1,6 +1,8 @@
1
1
  import asyncio
2
+ import base64
2
3
  import hashlib
3
4
  import json
5
+ import mimetypes
4
6
  import operator
5
7
  import zipfile
6
8
  from functools import reduce
@@ -182,3 +184,36 @@ def get_temp_path(sub_path=None):
182
184
  if sub_path:
183
185
  path = path / sub_path
184
186
  return path
187
+
188
+
189
+ def convert_file_to_base64(file_path):
190
+ """
191
+ Convert a file to base64 using pathlib.
192
+
193
+ Args:
194
+ file_path (str): Path to the file to convert
195
+
196
+ Returns:
197
+ str: Base64 encoded string of the file contents
198
+ """
199
+ # Convert string path to Path object
200
+ path = Path(file_path)
201
+
202
+ try:
203
+ # Read binary content of the file
204
+ binary_content = path.read_bytes()
205
+
206
+ # Convert to base64
207
+ base64_encoded = base64.b64encode(binary_content).decode('utf-8')
208
+
209
+ # Get the MIME type of the file
210
+ mime_type, _ = mimetypes.guess_type(path)
211
+ assert mime_type is not None, 'MIME type cannot be guessed'
212
+
213
+ # Convert bytes to string for readable output
214
+ return f'data:{mime_type};base64,{base64_encoded}'
215
+
216
+ except FileNotFoundError:
217
+ raise FileNotFoundError(f'File not found: {file_path}')
218
+ except Exception as e:
219
+ raise Exception(f'Error converting file to base64: {str(e)}')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: synapse-sdk
3
- Version: 1.0.0a27
3
+ Version: 1.0.0a29
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