Extension to render Google Colab Form on regular Jupyter Notebooks
Project description
ipyform
Extension to render Google Colab Form on regular Jupyter Notebooks.
pip install ipyform
# or with uv
uv add ipyform
Tested on: Jupyter notebooks, JupyterLab and Vscode.
The solution has no effect (does nothing) when running on Colab.
Usage
Auto detect
Add thoses 2 lines to the top of your notebook. Ipyform will detect automatically colab annotations and display widget forms. No other change is needed.
%load_ext ipyform
%form_config --auto-detect 1
Here is a reproduction of official Google Colab example example.
With cell magic
[!TIP] If you use vscode Pylance, use
#! %%forminstead of%%form. See Caveats
%%form --col 2
# @title This is a form { display-mode: "form" }
# @markdown ### Section 1
number_input = 10.0 # @param {type:"number"}
number_slider = 0 # @param {type:"slider", min:-1, max:1, step:0.1}
integer_input = 10 # @param {type:"integer"}
integer_slider = 1 # @param {type:"slider", min:0, max:100, step:1}
# @markdown ### Section 2
date_input = '2018-03-22' # @param {type:"date"}
|
|
Caveats
ipyformusesipywidgetsto render the forms. This means that the forms are not rendered in the static version of the notebook.
In Vscode
- Hide code feature is not supported.
- Sometimes the
ipywidgetsare duplicated. This is a known issue with ipywidgets andVscode. Reload window will fix. - Pylance ignores cells with cell magic (
%%form), and then warms about undefined variables. To avoid the issue, you can use#! %%forminstead of%%form. This way pylance sees the cell as a python cell, andipyformwill still render the form.
Dev
uv sync
uv run pytest --inline-snapshot=review
# publish
rm -rf dist && uv build
uvx twine upload dist/*
Specs
| When | Field Type | Data Types | Default Datatype | Additional properties |
|---|---|---|---|---|
@param followed by options list |
Dropdown | string, raw |
string |
allow-input, options |
"type": "slider" |
Slider | number, integer |
Determined by step |
min, max, step |
| Otherwise | Input | boolean, date, string, raw, number, integer |
raw |
placeholder |
Input field
# datatype: raw
var_name = expression # @param
# datatype: number
var_name = expression # @param {"type": "number", "placeholder": "your number here"}
Dropdown field
# datatype: string
var_name = expression # @param [1, "2"]
# datatype: raw
var_name = expression # @param ["expression", 1, 2] {"type": "raw"}
Slider field
# datatype: integer. in range [0, 100]
var_name = expression # @param {"type": "slider"}
# datatype: number
var_name = expression # @param {"type": "slider", "min": 1, "max": 2, "step": 0.1}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ipyform-0.1.1.tar.gz.
File metadata
- Download URL: ipyform-0.1.1.tar.gz
- Upload date:
- Size: 450.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1ad29538d96f057fd8a3257b04c2a0b0af819fa206d30f03c140fe48f0afd74
|
|
| MD5 |
d411186d9478471915bdb25c5f0df52b
|
|
| BLAKE2b-256 |
98eff506ffb61943481650a21e844a8ae0df4121f1647264d646136f0bebd759
|
File details
Details for the file ipyform-0.1.1-py3-none-any.whl.
File metadata
- Download URL: ipyform-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1916f8dca48dca20c50efcfffa67cc2f3bbc0f4334df5d4f74b68fbb1cc36186
|
|
| MD5 |
d84b7acfdfd72212ee466a6a77ca8cb0
|
|
| BLAKE2b-256 |
ab9b395e70de1edbc513e82dd08e115574c882a371ce0f40a7f5c683de841486
|