Skip to content

examples: four walkthrough notebooks for the common API journeys - #8

Merged
infusini merged 1 commit into
mainfrom
examples/walkthroughs
Sep 10, 2026
Merged

infusini merged 1 commit into
mainfrom
examples/walkthroughs

Conversation

@infusini

Copy link
Copy Markdown
Contributor

What

Adds examples/walkthroughs/, four notebooks that each take something you would normally do by clicking in the app and do it from the API instead. They are written to be read as much as run: every wire format that is not guessable from the client is explained where it appears, along with what goes wrong if you get it different.

notebook covers
md_dr_pairwise_walkthrough upload, then pairwise and per-compound dose response from one upload
md_workspace_walkthrough workspaces, tabs, the module registry, the 12-column grid
md_qc_report_automation the in-app QC Report automation, rebuilt from the API
md_pairwise_ora_walkthrough saved entity lists and pathway enrichment from a pairwise result

Read in that order; each assumes the one before it.

Verified

All four run end to end against dev. The last one, as an example of the level of checking: 1876 entities through a pairwise, six entity lists created, 22 modules placed across two tabs, three ora jobs completed, and the resulting ora_results tables downloaded and inspected rather than trusted. Settings were read back from the API after creation rather than assumed from the create call succeeding.

Notes for review

  • Checked in without saved outputs, so readers see their own results.
  • md_pairwise_ora_walkthrough needs pandas and requests, which are not md-python dependencies. Called out in the folder README rather than added to pyproject.toml, since it is the only notebook that needs them.
  • No real dataset ids, org data or customer names; configuration cells use 00000000-... placeholders.
  • Docs only. No library code is touched, so nothing here can affect an existing caller.

Two things the notebooks document that are worth knowing independently

Module settings are validated for shape, not for meaning. The API returns a 422 for wrong keys or wrong types, but accepts a metadata column name that does not exist, or an enum value with the wrong capitalisation. Those surface later as an empty widget on a tab.

A required setting can still be empty. Several modules declare a setting required and default it to []. An empty list satisfies the requirement, so the module is created and renders nothing.

Each one takes something you would normally do by clicking in the app and
does it from the API instead, explaining the wire formats that are not
guessable from the client and what happens when you get them wrong.

  md_dr_pairwise_walkthrough    upload, then pairwise + dose response
  md_workspace_walkthrough      workspaces, tabs, registry, the grid
  md_qc_report_automation       the QC Report automation, rebuilt
  md_pairwise_ora_walkthrough   saved entity lists and pathway enrichment

All four run end to end against dev. Checked in without saved outputs so
readers see their own results. The ORA notebook additionally needs pandas
and requests, noted in the folder README.
@infusini
infusini merged commit 27d07e7 into main Sep 10, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant