datachain 0.19.2__py3-none-any.whl → 0.20.1__py3-none-any.whl

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 datachain might be problematic. Click here for more details.

@@ -8,7 +8,8 @@ if TYPE_CHECKING:
8
8
 
9
9
  from datachain.cli.utils import determine_flavors
10
10
  from datachain.config import Config
11
- from datachain.error import DatasetNotFoundError
11
+ from datachain.dataset import parse_dataset_name
12
+ from datachain.error import DataChainError, DatasetNotFoundError
12
13
  from datachain.studio import list_datasets as list_datasets_studio
13
14
 
14
15
 
@@ -101,11 +102,15 @@ def list_datasets_local(catalog: "Catalog", name: Optional[str] = None):
101
102
 
102
103
  for d in catalog.ls_datasets():
103
104
  for v in d.versions:
104
- yield (d.name, v.version)
105
+ yield (d.full_name, v.version)
105
106
 
106
107
 
107
108
  def list_datasets_local_versions(catalog: "Catalog", name: str):
108
- ds = catalog.get_dataset(name)
109
+ namespace_name, project_name, name = parse_dataset_name(name)
110
+ namespace_name = namespace_name or catalog.metastore.default_namespace_name
111
+ project_name = project_name or catalog.metastore.default_project_name
112
+ project = catalog.metastore.get_project(project_name, namespace_name)
113
+ ds = catalog.get_dataset(name, project)
109
114
  for v in ds.versions:
110
115
  yield (name, v.version)
111
116
 
@@ -129,25 +134,29 @@ def rm_dataset(
129
134
  name: str,
130
135
  version: Optional[str] = None,
131
136
  force: Optional[bool] = False,
132
- studio: bool = False,
133
- local: bool = False,
134
- all: bool = True,
137
+ studio: Optional[bool] = False,
135
138
  team: Optional[str] = None,
136
139
  ):
137
- from datachain.studio import remove_studio_dataset
138
-
139
- token = Config().read().get("studio", {}).get("token")
140
- all, local, studio = determine_flavors(studio, local, all, token)
141
-
142
- if all or local:
140
+ namespace_name, project_name, name = parse_dataset_name(name)
141
+ namespace_name = namespace_name or catalog.metastore.default_namespace_name
142
+ project_name = project_name or catalog.metastore.default_project_name
143
+
144
+ if not catalog.metastore.is_local_dataset(namespace_name) and studio:
145
+ from datachain.studio import remove_studio_dataset
146
+
147
+ token = Config().read().get("studio", {}).get("token")
148
+ if not token:
149
+ raise DataChainError(
150
+ "Not logged in to Studio. Log in with 'datachain auth login'."
151
+ )
152
+ remove_studio_dataset(team, name, namespace_name, project_name, version, force)
153
+ else:
143
154
  try:
144
- catalog.remove_dataset(name, version=version, force=force)
155
+ project = catalog.metastore.get_project(project_name, namespace_name)
156
+ catalog.remove_dataset(name, project, version=version, force=force)
145
157
  except DatasetNotFoundError:
146
158
  print("Dataset not found in local", file=sys.stderr)
147
159
 
148
- if (all or studio) and token:
149
- remove_studio_dataset(team, name, version, force)
150
-
151
160
 
152
161
  def edit_dataset(
153
162
  catalog: "Catalog",
@@ -155,21 +164,27 @@ def edit_dataset(
155
164
  new_name: Optional[str] = None,
156
165
  description: Optional[str] = None,
157
166
  attrs: Optional[list[str]] = None,
158
- studio: bool = False,
159
- local: bool = False,
160
- all: bool = True,
161
167
  team: Optional[str] = None,
162
168
  ):
163
- from datachain.studio import edit_studio_dataset
169
+ namespace_name, project_name, name = parse_dataset_name(name)
170
+ namespace_name = namespace_name or catalog.metastore.default_namespace_name
171
+ project_name = project_name or catalog.metastore.default_project_name
164
172
 
165
- token = Config().read().get("studio", {}).get("token")
166
- all, local, studio = determine_flavors(studio, local, all, token)
167
-
168
- if all or local:
173
+ if catalog.metastore.is_local_dataset(namespace_name):
169
174
  try:
170
- catalog.edit_dataset(name, new_name, description, attrs)
175
+ catalog.edit_dataset(
176
+ name, catalog.metastore.default_project, new_name, description, attrs
177
+ )
171
178
  except DatasetNotFoundError:
172
179
  print("Dataset not found in local", file=sys.stderr)
173
-
174
- if (all or studio) and token:
175
- edit_studio_dataset(team, name, new_name, description, attrs)
180
+ else:
181
+ from datachain.studio import edit_studio_dataset
182
+
183
+ token = Config().read().get("studio", {}).get("token")
184
+ if not token:
185
+ raise DataChainError(
186
+ "Not logged in to Studio. Log in with 'datachain auth login'."
187
+ )
188
+ edit_studio_dataset(
189
+ team, name, namespace_name, project_name, new_name, description, attrs
190
+ )
@@ -221,26 +221,6 @@ def get_parser() -> ArgumentParser: # noqa: PLR0915
221
221
  nargs="+",
222
222
  help="Dataset attributes",
223
223
  )
224
- parse_edit_dataset.add_argument(
225
- "--studio",
226
- action="store_true",
227
- default=False,
228
- help="Edit dataset from Studio",
229
- )
230
- parse_edit_dataset.add_argument(
231
- "-L",
232
- "--local",
233
- action="store_true",
234
- default=False,
235
- help="Edit local dataset only",
236
- )
237
- parse_edit_dataset.add_argument(
238
- "-a",
239
- "--all",
240
- action="store_true",
241
- default=True,
242
- help="Edit both datasets from studio and local",
243
- )
244
224
  parse_edit_dataset.add_argument(
245
225
  "--team",
246
226
  action="store",
@@ -315,21 +295,7 @@ def get_parser() -> ArgumentParser: # noqa: PLR0915
315
295
  "--studio",
316
296
  action="store_true",
317
297
  default=False,
318
- help="Remove dataset from Studio",
319
- )
320
- rm_dataset_parser.add_argument(
321
- "-L",
322
- "--local",
323
- action="store_true",
324
- default=False,
325
- help="Remove local datasets only",
326
- )
327
- rm_dataset_parser.add_argument(
328
- "-a",
329
- "--all",
330
- action="store_true",
331
- default=True,
332
- help="Remove both local and studio",
298
+ help="Remove dataset from Studio only",
333
299
  )
334
300
  rm_dataset_parser.add_argument(
335
301
  "--team",
@@ -52,10 +52,10 @@ def add_jobs_parser(subparsers, parent_parser) -> None:
52
52
  )
53
53
 
54
54
  studio_run_parser.add_argument(
55
- "--cluster-id",
56
- type=int,
55
+ "--cluster",
56
+ type=str,
57
57
  action="store",
58
- help="Compute cluster ID to run the job on",
58
+ help="Compute cluster to run the job on",
59
59
  )
60
60
 
61
61
  studio_run_parser.add_argument(