@@ -29,7 +29,7 @@ <h1 class="title">Module <code>signals_notebook.entities.admin_defined_object</c
29
29
< pre > < code class ="python "> import json
30
30
import logging
31
31
from functools import cached_property
32
- from typing import ClassVar, Literal, Optional
32
+ from typing import Any, ClassVar, List , Literal, Optional
33
33
34
34
from pydantic import BaseModel, Field
35
35
@@ -163,12 +163,15 @@ <h1 class="title">Module <code>signals_notebook.entities.admin_defined_object</c
163
163
164
164
return template.render(data=data)
165
165
166
- def dump(self, base_path: str, fs_handler: FSHandler) -> None: # type: ignore[override]
166
+ def dump(
167
+ self, base_path: str, fs_handler: FSHandler, alias: Optional[List[str]] = None
168
+ ) -> None: # type: ignore[override]
167
169
"""Dump AdminDefinedObject entity
168
170
169
171
Args:
170
172
base_path: content path where create dump
171
173
fs_handler: FSHandler
174
+ alias: Backup alias
172
175
173
176
Returns:
174
177
@@ -180,12 +183,13 @@ <h1 class="title">Module <code>signals_notebook.entities.admin_defined_object</c
180
183
fs_handler.write(
181
184
fs_handler.join_path(base_path, self.eid, 'metadata.json'),
182
185
json.dumps(metadata),
186
+ base_alias=alias + [self.name, '__Metadata'] if alias else None,
183
187
)
184
188
for child in self.get_children():
185
189
child.dump(fs_handler.join_path(base_path, self.eid), fs_handler)
186
190
187
191
@classmethod
188
- def load(cls, path: str, fs_handler: FSHandler, notebook: Notebook) -> None: # type: ignore[override]
192
+ def load(cls, path: str, fs_handler: FSHandler, notebook: Notebook) -> None:
189
193
"""Load AdminDefinedObject entity
190
194
191
195
Args:
@@ -196,11 +200,15 @@ <h1 class="title">Module <code>signals_notebook.entities.admin_defined_object</c
196
200
Returns:
197
201
198
202
"""
203
+ cls._load(path, fs_handler, notebook)
204
+
205
+ @classmethod
206
+ def _load(cls, path: str, fs_handler: FSHandler, parent: Any) -> None:
199
207
from signals_notebook.item_mapper import ItemMapper
200
208
201
209
metadata = json.loads(fs_handler.read(fs_handler.join_path(path, 'metadata.json')))
202
210
experiment = cls.create(
203
- notebook=notebook ,
211
+ notebook=parent ,
204
212
name=metadata['name'],
205
213
ado_type_name=metadata.get('ado_name', CUSTOM_SYSTEM_OBJECT),
206
214
description=metadata['description'],
@@ -209,7 +217,7 @@ <h1 class="title">Module <code>signals_notebook.entities.admin_defined_object</c
209
217
child_entities_folders = fs_handler.list_subfolders(path)
210
218
for child_entity in child_entities_folders:
211
219
child_entity_type = child_entity.split(':')[0]
212
- ItemMapper.get_item_class(child_entity_type).load (
220
+ ItemMapper.get_item_class(child_entity_type)._load (
213
221
fs_handler.join_path(path, child_entity), fs_handler, experiment
214
222
)</ code > </ pre >
215
223
</ details >
@@ -315,12 +323,15 @@ <h2 class="section-title" id="header-classes">Classes</h2>
315
323
316
324
return template.render(data=data)
317
325
318
- def dump(self, base_path: str, fs_handler: FSHandler) -> None: # type: ignore[override]
326
+ def dump(
327
+ self, base_path: str, fs_handler: FSHandler, alias: Optional[List[str]] = None
328
+ ) -> None: # type: ignore[override]
319
329
"""Dump AdminDefinedObject entity
320
330
321
331
Args:
322
332
base_path: content path where create dump
323
333
fs_handler: FSHandler
334
+ alias: Backup alias
324
335
325
336
Returns:
326
337
@@ -332,12 +343,13 @@ <h2 class="section-title" id="header-classes">Classes</h2>
332
343
fs_handler.write(
333
344
fs_handler.join_path(base_path, self.eid, 'metadata.json'),
334
345
json.dumps(metadata),
346
+ base_alias=alias + [self.name, '__Metadata'] if alias else None,
335
347
)
336
348
for child in self.get_children():
337
349
child.dump(fs_handler.join_path(base_path, self.eid), fs_handler)
338
350
339
351
@classmethod
340
- def load(cls, path: str, fs_handler: FSHandler, notebook: Notebook) -> None: # type: ignore[override]
352
+ def load(cls, path: str, fs_handler: FSHandler, notebook: Notebook) -> None:
341
353
"""Load AdminDefinedObject entity
342
354
343
355
Args:
@@ -348,11 +360,15 @@ <h2 class="section-title" id="header-classes">Classes</h2>
348
360
Returns:
349
361
350
362
"""
363
+ cls._load(path, fs_handler, notebook)
364
+
365
+ @classmethod
366
+ def _load(cls, path: str, fs_handler: FSHandler, parent: Any) -> None:
351
367
from signals_notebook.item_mapper import ItemMapper
352
368
353
369
metadata = json.loads(fs_handler.read(fs_handler.join_path(path, 'metadata.json')))
354
370
experiment = cls.create(
355
- notebook=notebook ,
371
+ notebook=parent ,
356
372
name=metadata['name'],
357
373
ado_type_name=metadata.get('ado_name', CUSTOM_SYSTEM_OBJECT),
358
374
description=metadata['description'],
@@ -361,7 +377,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
361
377
child_entities_folders = fs_handler.list_subfolders(path)
362
378
for child_entity in child_entities_folders:
363
379
child_entity_type = child_entity.split(':')[0]
364
- ItemMapper.get_item_class(child_entity_type).load (
380
+ ItemMapper.get_item_class(child_entity_type)._load (
365
381
fs_handler.join_path(path, child_entity), fs_handler, experiment
366
382
)</ code > </ pre >
367
383
</ details >
@@ -490,7 +506,7 @@ <h2 id="args">Args</h2>
490
506
< span > Expand source code</ span >
491
507
</ summary >
492
508
< pre > < code class ="python "> @classmethod
493
- def load(cls, path: str, fs_handler: FSHandler, notebook: Notebook) -> None: # type: ignore[override]
509
+ def load(cls, path: str, fs_handler: FSHandler, notebook: Notebook) -> None:
494
510
"""Load AdminDefinedObject entity
495
511
496
512
Args:
@@ -501,29 +517,14 @@ <h2 id="args">Args</h2>
501
517
Returns:
502
518
503
519
"""
504
- from signals_notebook.item_mapper import ItemMapper
505
-
506
- metadata = json.loads(fs_handler.read(fs_handler.join_path(path, 'metadata.json')))
507
- experiment = cls.create(
508
- notebook=notebook,
509
- name=metadata['name'],
510
- ado_type_name=metadata.get('ado_name', CUSTOM_SYSTEM_OBJECT),
511
- description=metadata['description'],
512
- force=True,
513
- )
514
- child_entities_folders = fs_handler.list_subfolders(path)
515
- for child_entity in child_entities_folders:
516
- child_entity_type = child_entity.split(':')[0]
517
- ItemMapper.get_item_class(child_entity_type).load(
518
- fs_handler.join_path(path, child_entity), fs_handler, experiment
519
- )</ code > </ pre >
520
+ cls._load(path, fs_handler, notebook)</ code > </ pre >
520
521
</ details >
521
522
</ dd >
522
523
</ dl >
523
524
< h3 > Methods</ h3 >
524
525
< dl >
525
526
< dt id ="signals_notebook.entities.admin_defined_object.AdminDefinedObject.dump "> < code class ="name flex ">
526
- < span > def < span class ="ident "> dump</ span > </ span > (< span > self, base_path: str, fs_handler: < a title ="signals_notebook.utils.fs_handler.FSHandler " href ="../utils/fs_handler.html#signals_notebook.utils.fs_handler.FSHandler "> FSHandler</ a > ) ‑> None</ span >
527
+ < span > def < span class ="ident "> dump</ span > </ span > (< span > self, base_path: str, fs_handler: < a title ="signals_notebook.utils.fs_handler.FSHandler " href ="../utils/fs_handler.html#signals_notebook.utils.fs_handler.FSHandler "> FSHandler</ a > , alias: Optional[List[str]] = None ) ‑> None</ span >
527
528
</ code > </ dt >
528
529
< dd >
529
530
< div class ="desc "> < p > Dump AdminDefinedObject entity</ p >
@@ -533,18 +534,23 @@ <h2 id="args">Args</h2>
533
534
< dd > content path where create dump</ dd >
534
535
< dt > < strong > < code > fs_handler</ code > </ strong > </ dt >
535
536
< dd > FSHandler</ dd >
537
+ < dt > < strong > < code > alias</ code > </ strong > </ dt >
538
+ < dd > Backup alias</ dd >
536
539
</ dl >
537
540
< p > Returns:</ p > </ div >
538
541
< details class ="source ">
539
542
< summary >
540
543
< span > Expand source code</ span >
541
544
</ summary >
542
- < pre > < code class ="python "> def dump(self, base_path: str, fs_handler: FSHandler) -> None: # type: ignore[override]
545
+ < pre > < code class ="python "> def dump(
546
+ self, base_path: str, fs_handler: FSHandler, alias: Optional[List[str]] = None
547
+ ) -> None: # type: ignore[override]
543
548
"""Dump AdminDefinedObject entity
544
549
545
550
Args:
546
551
base_path: content path where create dump
547
552
fs_handler: FSHandler
553
+ alias: Backup alias
548
554
549
555
Returns:
550
556
@@ -556,6 +562,7 @@ <h2 id="args">Args</h2>
556
562
fs_handler.write(
557
563
fs_handler.join_path(base_path, self.eid, 'metadata.json'),
558
564
json.dumps(metadata),
565
+ base_alias=alias + [self.name, '__Metadata'] if alias else None,
559
566
)
560
567
for child in self.get_children():
561
568
child.dump(fs_handler.join_path(base_path, self.eid), fs_handler)</ code > </ pre >
0 commit comments