⨠panel-copy-paste

Extends HoloViz Panel with copy-paste functionality.

Copy-paste to and from your data apps as well as external applications like Excel.
Features
CopyButton
: Enables you to copy Python objects to the clipboard.
PasteButton
: Enables you to paste strings from the clipboard.
PasteToDataFrameButton
: Enables you to paste strings from the clipboard into dataframe values.
Pin your version!
This project is in its early stages, so if you find a version that suits your needs, itās recommended to pin your version, as updates may introduce changes.
Installation
Install it via pip
:
pip install panel-copy-paste
Usage
To use the CopyButton
:
import panel as pn
from panel_copy_paste import CopyButton
pn.extension("codeeditor")
editor = pn.widgets.CodeEditor()
button = CopyButton(value="Hello World")
pn.Column(button, editor).servable()
To use the PasteButton
:
import panel as pn
from panel_copy_paste import PasteButton
pn.extension("codeeditor")
editor = pn.widgets.CodeEditor()
button = PasteButton(target=editor)
pn.Column(button, editor).servable()
To use the PasteToDataFrameButton
:
import panel as pn
from panel_copy_paste import PasteToDataFrameButton
pn.extension("tabulator")
table = pn.widgets.Tabulator()
button = PasteToDataFrameButton(target=table)
pn.Column(button, table).servable()
For more examples check out the documentation.
Development
git clone https://github.com/awesome-panel/panel-copy-paste
cd panel-copy-paste
For a simple setup use uv
:
uv venv
source .venv/bin/activate
uv pip install -e .[dev]
pre-commit run install
pytest tests
For the full setup used by Github Actions use pixi
:
pixi run pre-commit-install
pixi run postinstall
pixi run test
This repository is based on copier-template-panel-extension.
To update to the latest template version run:
pixi exec --spec copier --spec ruamel.yaml -- copier update --defaults --trust
Note: copier
will show Conflict
for files with manual changes during an update. This is normal. As long as there are no merge conflict markers, all patches applied cleanly.
ā¤ļø Contributing
Contributions are welcome! Please follow these steps to contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature/YourFeature
.
- Make your changes and commit them:
git commit -m 'Add some feature'
.
- Push to the branch:
git push origin feature/YourFeature
.
- Open a pull request.
Please ensure your code adheres to the project's coding standards and passes all tests.