Technology
EZInput eliminates the friction of building scientific user interfaces by providing a unified API that works identically in Jupyter notebooks and terminal scripts — write your UI once, deploy anywhere.
🌐 Documentation → | 🚀 GitHub → | 📦 PyPI →
The Problem It Solves
Scientific computing workflows often need to run in multiple environments: interactive Jupyter notebooks for exploration and prototyping, and terminal scripts for automated pipelines. Traditionally, this requires maintaining two separate UI codebases — one using ipywidgets for notebooks and another using argparse or prompt-toolkit for terminals. EZInput removes this duplication entirely.
Key Features
- Unified API: The same widget code runs in both Jupyter notebooks and terminal environments with zero modification
- Auto-Persistence: Widget values are automatically saved and restored between sessions, preserving parameter sets across runs
- Type-Safe Inputs: Validated inputs with type checking for integers, floats, text, file paths, and more
- Rich Widget Set: Sliders, dropdowns, text inputs, file pickers, checkboxes, and more — all environment-aware
- Zero Boilerplate: No environment detection code required — EZInput handles it transparently
Perfect For
- Image analysis pipelines requiring user-configurable parameters
- Data science workflows with interactive configuration
- Research tools that need both notebook and CLI interfaces
- Teaching and tutorials with reproducible parameter sets
Installation
pip install ezinput
Quick Example
from ezinput import EZInput
ui = EZInput()
threshold = ui.slider("Threshold", min=0, max=255, value=128)
input_path = ui.file_picker("Input image")
ui.show()
# Works identically in notebooks and terminal scripts
print(f"Processing {input_path} with threshold {threshold}")
Integration with NanoPyx
EZInput was developed alongside NanoPyx to provide a consistent interface for its image analysis workflows, enabling the same analysis notebooks to be deployed as automated pipeline scripts without code changes.
Publications featuring EZInput
|
EZInput - A Cross-Environment Python Library for Easy UI Generation in Scientific Computing Bruno M Saraiva, Iván Hidalgo-Cenalmor, António D Brito, Damián Martínez, Tayla Shakespeare, Guillaume Jacquemet, Ricardo Henriques Preprint published in arXiv, January 2026 Technologies: EZInput () and NanoPyx () Funded by: Chan Zuckerberg Initiative (CZI), The Kavli Foundation, and The Wellcome Trust, CZI, EMBO and ERC DOI: 10.48550/arXiv.2601.08859 |
|