How to track notebooks?#
!lamin init --storage ./test-notebooks
✅ saved: User(id='DzTjkKse', handle='testuser1', email='testuser1@lamin.ai', name='Test User1', updated_at=2023-09-26 15:21:17)
✅ saved: Storage(id='RqxUgN76', root='/home/runner/work/lamindb/lamindb/docs/faq/test-notebooks', type='local', updated_at=2023-09-26 15:21:17, created_by_id='DzTjkKse')
💡 loaded instance: testuser1/test-notebooks
💡 did not register local instance on hub (if you want, call `lamin register`)
import lamindb as ln
ln.settings.verbosity = "hint"
💡 loaded instance: testuser1/test-notebooks (lamindb 0.54.2)
The following call will create a new run, if there is none in the database, yet.
ln.track()
💡 notebook imports: lamindb==0.54.2
✅ saved: Transform(id='FkCpHEubpDGYxM', name='How to track notebooks?', short_name='notebooks', version='1', type=notebook, updated_at=2023-09-26 15:21:20, created_by_id='DzTjkKse')
✅ saved: Run(id='DtelPkFNoq6JtUQp2kFm', run_at=2023-09-26 15:21:20, transform_id='FkCpHEubpDGYxM', created_by_id='DzTjkKse')
run_id = ln.dev.run_context.run.id
Calling ln.track()
when there is a new run in the database will load the latest run:
ln.track()
💡 notebook imports: lamindb==0.54.2
✅ loaded: Transform(id='FkCpHEubpDGYxM', name='How to track notebooks?', short_name='notebooks', version='1', type='notebook', updated_at=2023-09-26 15:21:20, created_by_id='DzTjkKse')
✅ loaded: Run(id='DtelPkFNoq6JtUQp2kFm', run_at=2023-09-26 15:21:20, transform_id='FkCpHEubpDGYxM', created_by_id='DzTjkKse')
ln.Run.filter().df()
transform_id | run_at | created_by_id | reference | reference_type | |
---|---|---|---|---|---|
id | |||||
DtelPkFNoq6JtUQp2kFm | FkCpHEubpDGYxM | 2023-09-26 15:21:20 | DzTjkKse | None | None |
run_id
'DtelPkFNoq6JtUQp2kFm'
ln.run_context.run.id
'DtelPkFNoq6JtUQp2kFm'
Show code cell content
# this tests that we're still using the previous run
assert run_id == ln.run_context.run.id
If you’d like to create a new run, pass new_run=True
.
ln.track(new_run=True)
💡 notebook imports: lamindb==0.54.2
✅ loaded: Transform(id='FkCpHEubpDGYxM', name='How to track notebooks?', short_name='notebooks', version='1', type='notebook', updated_at=2023-09-26 15:21:20, created_by_id='DzTjkKse')
✅ saved: Run(id='pmaCyNX0hwlsWtFgPSaP', run_at=2023-09-26 15:21:20, transform_id='FkCpHEubpDGYxM', created_by_id='DzTjkKse')
Show code cell content
assert run_id != ln.run_context.run.id
# test re-initialize notebook if it got renamed
from lamindb.dev._run_context import reinitialize_notebook
transform = ln.Transform(id="FkCpHEubpDGY58", name="My test")
# outside of CI, will expect interactive user input
transform, metadata = reinitialize_notebook(transform, ask_for_new_id=False)
assert not transform.id.startswith("FkCpHEubpD")
!lamin delete --force test-notebooks
!rm -r test-notebooks
💡 deleting instance testuser1/test-notebooks
✅ deleted instance settings file: /home/runner/.lamin/instance--testuser1--test-notebooks.env
✅ instance cache deleted
✅ deleted '.lndb' sqlite file
❗ consider manually deleting your stored data: /home/runner/work/lamindb/lamindb/docs/faq/test-notebooks