Presentation is loading. Please wait.

Presentation is loading. Please wait.

Notebook Development and Testing

Similar presentations


Presentation on theme: "Notebook Development and Testing"— Presentation transcript:

1 Notebook Development and Testing
1Hans J. Johnson, 2Bradley C. Lowekamp, 3Ziv Yaniv 1The University of Iowa 2National Institutes of Health 3TAJ Technologies Inc. 4MSC LLC

2 Maintaining Your Python Notebooks
Notebooks are code and prose. Use a version control system (git, hg, svn). Test them, at least execution (pytest, nose2, unittest). Notebooks are not pure code, they may also contain execution results. Commit clean notebooks to avoid messy history and an unnecessarily large repository. Use a continuous integration service to run your tests (CircleCI, Travis CI, Appveyor).

3 SimpleITK Notebook Development and Testing
One authoritative repository: github.com/InsightSoftwareConsortium/SimpleITK-Notebooks No direct commits to this repository, only pull requests. Code review and test (pytest) pull requests: Static: (1) ensure notebooks contain no output; (2) spellcheck all markdown/prose cells and comments in code. Dynamic: (1) Run the notebook using the jupyter nbconvert tool and analyze result (notebook in JSON format). Mark code cell meta-data: simpleitk_error_allowed (may or may not happen), simpleitk_error_expected; (2) regression testing – in the works. Deal with memory constraints on build machines.

4 SimpleITK Notebook Development and Testing
Data sharing: Storage: (1) images on MIDAS data servers or on accessible web pages (raw url); (2) code repository contains data manifest file in JSON format with md5 to validate download integrity. Retrieval: Cache images locally. (1) without internet access, bulk download script; (2) with internet access, lazy download. For additional details see: “SimpleITK Image-Analysis Notebooks: a Collaborative Environment for Education and Reproducible Research” (read freely here).

5 Join the Community We welcome questions/requests/contributions from the community: Ask questions (itk discourse) Request features / examples. Report bugs. Contribute code or new notebooks. github.com/SimpleITK/SimpleITK and github.com/InsightSoftwareConsortium/SimpleITK-Notebooks

6


Download ppt "Notebook Development and Testing"

Similar presentations


Ads by Google