{"id":21560208,"url":"https://github.com/awesome-panel/panel-copy-paste","last_synced_at":"2026-04-02T01:50:44.095Z","repository":{"id":264378492,"uuid":"893199077","full_name":"awesome-panel/panel-copy-paste","owner":"awesome-panel","description":"Extends HoloViz Panel with functionality to copy to and paste from the clipboard","archived":false,"fork":false,"pushed_at":"2025-01-01T12:31:32.000Z","size":3785,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-12T06:01:36.676Z","etag":null,"topics":["data-app","holoviz-panel","python"],"latest_commit_sha":null,"homepage":"https://awesome-panel.github.io/panel-copy-paste/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/awesome-panel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-23T19:44:39.000Z","updated_at":"2025-01-01T12:31:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"a21dc0a7-7c94-4457-aa8e-5c324aa2c20a","html_url":"https://github.com/awesome-panel/panel-copy-paste","commit_stats":null,"previous_names":["awesome-panel/panel-copy-paste"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awesome-panel%2Fpanel-copy-paste","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awesome-panel%2Fpanel-copy-paste/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awesome-panel%2Fpanel-copy-paste/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awesome-panel%2Fpanel-copy-paste/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/awesome-panel","download_url":"https://codeload.github.com/awesome-panel/panel-copy-paste/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235426492,"owners_count":18988420,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-app","holoviz-panel","python"],"created_at":"2024-11-24T09:13:36.455Z","updated_at":"2026-04-02T01:50:44.070Z","avatar_url":"https://github.com/awesome-panel.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ✨ panel-copy-paste\n\n[![CI](https://img.shields.io/github/actions/workflow/status/awesome-panel/panel-copy-paste/ci.yml?style=flat-square\u0026branch=main)](https://github.com/awesome-panel/panel-copy-paste/actions/workflows/ci.yml)\n[![conda-forge](https://img.shields.io/conda/vn/conda-forge/panel-copy-paste?logoColor=white\u0026logo=conda-forge\u0026style=flat-square)](https://prefix.dev/channels/conda-forge/packages/panel-copy-paste)\n[![pypi-version](https://img.shields.io/pypi/v/panel-copy-paste.svg?logo=pypi\u0026logoColor=white\u0026style=flat-square)](https://pypi.org/project/panel-copy-paste)\n[![python-version](https://img.shields.io/pypi/pyversions/panel-copy-paste?logoColor=white\u0026logo=python\u0026style=flat-square)](https://pypi.org/project/panel-copy-paste)\n[![py.cafe](https://py.cafe/badge.svg)](https://py.cafe/awesome.panel.org/panel-copy-paste)\n\nExtends HoloViz Panel with copy-paste functionality.\n\n[![Copy-Paste Reference App](https://raw.githubusercontent.com/awesome-panel/panel-copy-paste/refs/heads/main/docs/assets/panel-copy-paste.gif)](https://py.cafe/awesome.panel.org/panel-copy-paste)\n\nCopy-paste to and from your data apps as well as external applications like Excel.\n\n## Features\n\n- `CopyButton`: Enables you to copy Python objects to the clipboard.\n- `PasteButton`: Enables you to paste strings from the clipboard.\n- `PasteToDataFrameButton`: Enables you to paste strings from the clipboard into dataframe values.\n\n## Pin your version!\n\nThis 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.\n\n## Installation\n\nInstall it via `pip`:\n\n```bash\npip install panel-copy-paste\n```\n\n## Usage\n\nTo use the `CopyButton`:\n\n```python\nimport panel as pn\nfrom panel_copy_paste import CopyButton\n\npn.extension(\"codeeditor\")\n\neditor = pn.widgets.CodeEditor()\nbutton = CopyButton(value=\"Hello World\")\npn.Column(button, editor).servable()\n```\n\nTo use the `PasteButton`:\n\n```python\nimport panel as pn\nfrom panel_copy_paste import PasteButton\n\npn.extension(\"codeeditor\")\n\neditor = pn.widgets.CodeEditor()\nbutton = PasteButton(target=editor)\npn.Column(button, editor).servable()\n```\n\nTo use the `PasteToDataFrameButton`:\n\n```python\nimport panel as pn\nfrom panel_copy_paste import PasteToDataFrameButton\n\npn.extension(\"tabulator\")\n\ntable = pn.widgets.Tabulator()\nbutton = PasteToDataFrameButton(target=table)\npn.Column(button, table).servable()\n```\n\nFor more examples check out the [documentation](https://awesome-panel.github.io/panel-copy-paste/).\n\n## Development\n\n```bash\ngit clone https://github.com/awesome-panel/panel-copy-paste\ncd panel-copy-paste\n```\n\nFor a simple setup use [`uv`](https://docs.astral.sh/uv/):\n\n```bash\nuv venv\nsource .venv/bin/activate # on linux. Similar commands for windows and osx\nuv pip install -e .[dev]\npre-commit run install\npytest tests\n```\n\nFor the full setup used by Github Actions use [`pixi`](https://pixi.sh):\n\n```bash\npixi run pre-commit-install\npixi run postinstall\npixi run test\n```\n\nThis repository is based on [copier-template-panel-extension](https://github.com/panel-extensions/copier-template-panel-extension).\nTo update to the latest template version run:\n\n```bash\npixi exec --spec copier --spec ruamel.yaml -- copier update --defaults --trust\n```\n\nNote: `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.\n\n## ❤️ Contributing\n\nContributions are welcome! Please follow these steps to contribute:\n\n1. Fork the repository.\n2. Create a new branch: `git checkout -b feature/YourFeature`.\n3. Make your changes and commit them: `git commit -m 'Add some feature'`.\n4. Push to the branch: `git push origin feature/YourFeature`.\n5. Open a pull request.\n\nPlease ensure your code adheres to the project's coding standards and passes all tests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawesome-panel%2Fpanel-copy-paste","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fawesome-panel%2Fpanel-copy-paste","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawesome-panel%2Fpanel-copy-paste/lists"}