Transfer artifacts from a local instance to a cloud instance

import lamindb as ln
import bionty as bt

ln.connect("laminlabs/lamin-dev")
bt.settings.organism = "human"
Hide code cell content
def cleanup(artifact: ln.Artifact):
    features_sets = artifact.feature_sets.all()
    experiments = artifact.experiments.all()
    artifact.delete(permanent=True, storage=False)
    features_sets.delete()
    experiments.delete()


artifacts = ln.Artifact.filter(description="test-transfer-to-cloud").all()
for artifact in artifacts:
    cleanup(artifact)
 a file/folder remains here: /home/runner/work/lamindb/lamindb/docs/storage/test-transfer-to-cloud/.lamindb/PTeEDsJcU9sbFf9c0000.parquet
artifact = ln.Artifact.using("testuser1/test-transfer-to-cloud").get(
    description="test-transfer-to-cloud"
)
artifact.describe()
Artifact .parquet/DataFrame
├── General
│   ├── .uid = 'QPmPoRiOuPjmvy5E0000'
│   ├── .size = 1568
│   ├── .hash = '6pyaqw5dSuWZ-EFe_j9kIA'
│   ├── .n_observations = 3
│   ├── .path = 
│   │   /home/runner/work/lamindb/lamindb/docs/storage/test-transfer-to-cloud/.lamindb/QPmPoRiOuPjmvy5E0000.parquet
│   ├── .created_by = testuser1 (Test User1)
│   └── .created_at = 2025-05-26 10:10:43
├── Dataset features
│   └── var2                     [bionty.CellMarker]                                                 
PD1                         num                                                                 
CD21                        num                                                                 
└── Labels
    └── .experiments                wetlab.Experiment          experiment-test-transfer-to-cloud        
        .organisms                  bionty.Organism            human                                    
artifact.save()
! no run & transform got linked, call `ln.track()` & re-run
 returning existing schema with same hash: Schema(uid='GCjElU3FwZ0ztltQ', n=2, is_type=False, itype='bionty.CellMarker', dtype='num', hash='ygZEOY-P2mQUntYonTjRVg', minimal_set=True, ordered_set=False, maximal_set=False, branch_id=1, space_id=1, created_by_id=2, created_at=2025-05-03 21:37:21 UTC)
 mapped records: Organism(uid='1dpCL6Td')
 transferred records: Artifact(uid='QPmPoRiOuPjmvy5E0000'), Experiment(uid='ziMAkBbv')
Artifact(uid='QPmPoRiOuPjmvy5E0000', is_latest=True, description='test-transfer-to-cloud', suffix='.parquet', kind='dataset', otype='DataFrame', size=1568, hash='6pyaqw5dSuWZ-EFe_j9kIA', n_observations=3, branch_id=1, space_id=1, storage_id=3, run_id=178, created_by_id=2, created_at=2025-05-26 10:10:43 UTC)
artifact.describe()
Artifact .parquet/DataFrame
├── General
│   ├── .uid = 'QPmPoRiOuPjmvy5E0000'
│   ├── .size = 1568
│   ├── .hash = '6pyaqw5dSuWZ-EFe_j9kIA'
│   ├── .n_observations = 3
│   ├── .path = 
│   │   /home/runner/work/lamindb/lamindb/docs/storage/test-transfer-to-cloud/.lamindb/QPmPoRiOuPjmvy5E0000.parquet
│   ├── .created_by = testuser1 (Test User1)
│   ├── .created_at = 2025-05-26 10:10:43
│   └── .transform = 'Transfer from `testuser1/test-transfer-to-cloud`'
├── Dataset features
│   └── var2                     [bionty.CellMarker]                                                 
CD21                        num                                                                 
PD1                         num                                                                 
└── Labels
    └── .experiments                wetlab.Experiment          experiment-test-transfer-to-cloud        
        .organisms                  bionty.Organism            human                                    
assert artifact._state.db == "default"
assert artifact.organisms.get().name == "human"
assert artifact.experiments.get().name == "experiment-test-transfer-to-cloud"
assert artifact.features["var"].count() == 2
/tmp/ipykernel_3048/1699649831.py:4: FutureWarning: Use slots[slot].members instead of __getitem__, __getitem__ will be removed in the future.
  assert artifact.features["var"].count() == 2
!lamin delete --force test-transfer-to-cloud
!rm -r ./test-transfer-to-cloud
╭─ Error ──────────────────────────────────────────────────────────────────────╮
 Storage                                                                      
 '/home/runner/work/lamindb/lamindb/docs/storage/test-transfer-to-cloud/.lami 
 ndb' contains 1 objects - delete them prior to deleting the instance         
╰──────────────────────────────────────────────────────────────────────────────╯