# PyClip
Cross-platform clipboard utilities supporting both binary and text data.
[![Docs](https://readthedocs.org/projects/pyclip/badge/?version=latest)](https://pyclip.readthedocs.io/en/latest/?badge=latest)
![Build](https://img.shields.io/github/checks-status/spyoungtech/pyclip/main?label=build)
![Coverage](https://img.shields.io/codecov/c/gh/spyoungtech/pyclip/main)
![PyPI Version](https://img.shields.io/pypi/v/pyclip?color=blue)
![Python Versions](https://img.shields.io/pypi/pyversions/pyclip)
[![Download Stats](https://pepy.tech/badge/pyclip)](https://pepy.tech/project/pyclip)
Some key features include:
- A cross-platform API (supports MacOS, Windows, Linux)
- Can handle arbitrary binary data
- On Windows, some additional [clipboard formats](https://docs.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats)
are supported
## Installation
Requires python 3.7+
```bash
pip install pyclip
```
## Usage
pyclip can be used in Python code
```python
import pyclip
pyclip.copy("hello clipboard") # copy data to the clipboard
cb_data = pyclip.paste() # retrieve clipboard contents
print(cb_data) # b'hello clipboard'
cb_text = pyclip.paste(text=True) # paste as text
print(cb_text) # 'hello clipboard'
pyclip.clear() # clears the clipboard contents
assert not pyclip.paste()
```
Or a CLI
```bash
# paste clipboard contents to stdout
python -m pyclip paste
# load contents to the clipboard from stdin
python -m pyclip copy < myfile.text
# same as above, but pipe from another command
some-program | python -m pyclip copy
```
Installing via pip also provides the console script `pyclip`:
```bash
pyclip copy < my_file.txt
```
This library implements functionality for several platforms and clipboard utilities.
- [x] MacOS
- [x] Windows
- [x] Linux on x11 (with `xclip`)
- [x] Linux on wayland (with `wl-clipboard`)
If there is a platform or utility not currently listed, please request it by creating an issue.
## Platform specific notes/issues
### Windows
- On Windows, the `pywin32` package is installed as a requirement.
- On Windows, additional clipboard formats are supported, including copying from a file
(like if you right-click copy from File Explorer)
### MacOS
MacOS has support for multiple backends. By default, the `pasteboard` package is used.
`pbcopy`/`pbpaste` can also be used as a backend, but does not support arbitrary binary data, which may lead to
data being lost on copy/paste. This backend may be removed in a future release.
### Linux
Linux on X11 requires `xclip` to work. Install with your package manager, e.g. `sudo apt install xclip`
Linux on Wayland requires `wl-clipboard` to work. Install with your package manager, e.g. `sudo apt install wl-clipboard`
# Acknowledgements
Big thanks to [Howard Mao](https://github.com/zhemao) for donating the PyClip project name on PyPI to
this project.
Raw data
{
"_id": null,
"home_page": "https://github.com/spyoungtech/pyclip",
"name": "pyclip",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "pyperclip clipboard cross-platform binary bytes files",
"author": "Spencer Young",
"author_email": "spencer.young@spyoung.com",
"download_url": "https://files.pythonhosted.org/packages/65/8a/98ed02d81dea4b2211a4746724d7a271264b701c991fed503c246de52864/pyclip-0.7.0.tar.gz",
"platform": null,
"description": "# PyClip\n\nCross-platform clipboard utilities supporting both binary and text data.\n\n[![Docs](https://readthedocs.org/projects/pyclip/badge/?version=latest)](https://pyclip.readthedocs.io/en/latest/?badge=latest)\n![Build](https://img.shields.io/github/checks-status/spyoungtech/pyclip/main?label=build) \n![Coverage](https://img.shields.io/codecov/c/gh/spyoungtech/pyclip/main) \n![PyPI Version](https://img.shields.io/pypi/v/pyclip?color=blue)\n![Python Versions](https://img.shields.io/pypi/pyversions/pyclip) \n[![Download Stats](https://pepy.tech/badge/pyclip)](https://pepy.tech/project/pyclip)\n\n\nSome key features include:\n\n- A cross-platform API (supports MacOS, Windows, Linux)\n- Can handle arbitrary binary data\n- On Windows, some additional [clipboard formats](https://docs.microsoft.com/en-us/windows/win32/dataxchg/standard-clipboard-formats) \nare supported\n\n## Installation\n\nRequires python 3.7+\n\n```bash\npip install pyclip\n```\n\n## Usage\n\npyclip can be used in Python code\n```python\nimport pyclip\n\npyclip.copy(\"hello clipboard\") # copy data to the clipboard\ncb_data = pyclip.paste() # retrieve clipboard contents \nprint(cb_data) # b'hello clipboard'\ncb_text = pyclip.paste(text=True) # paste as text\nprint(cb_text) # 'hello clipboard'\n\npyclip.clear() # clears the clipboard contents\nassert not pyclip.paste()\n```\n\nOr a CLI\n\n```bash\n# paste clipboard contents to stdout\npython -m pyclip paste\n\n# load contents to the clipboard from stdin\npython -m pyclip copy < myfile.text\n# same as above, but pipe from another command\nsome-program | python -m pyclip copy\n```\n\nInstalling via pip also provides the console script `pyclip`:\n\n```bash\npyclip copy < my_file.txt\n```\n\nThis library implements functionality for several platforms and clipboard utilities. \n\n- [x] MacOS\n- [x] Windows\n- [x] Linux on x11 (with `xclip`)\n- [x] Linux on wayland (with `wl-clipboard`)\n\nIf there is a platform or utility not currently listed, please request it by creating an issue.\n\n## Platform specific notes/issues\n\n### Windows\n\n- On Windows, the `pywin32` package is installed as a requirement.\n- On Windows, additional clipboard formats are supported, including copying from a file \n(like if you right-click copy from File Explorer)\n\n### MacOS\n\nMacOS has support for multiple backends. By default, the `pasteboard` package is used.\n\n`pbcopy`/`pbpaste` can also be used as a backend, but does not support arbitrary binary data, which may lead to \ndata being lost on copy/paste. This backend may be removed in a future release.\n\n### Linux\n\nLinux on X11 requires `xclip` to work. Install with your package manager, e.g. `sudo apt install xclip`\nLinux on Wayland requires `wl-clipboard` to work. Install with your package manager, e.g. `sudo apt install wl-clipboard`\n\n# Acknowledgements\n\nBig thanks to [Howard Mao](https://github.com/zhemao) for donating the PyClip project name on PyPI to \nthis project.\n",
"bugtrack_url": null,
"license": "Apache",
"summary": "Cross-platform clipboard utilities supporting both binary and text data.",
"version": "0.7.0",
"project_urls": {
"Homepage": "https://github.com/spyoungtech/pyclip"
},
"split_keywords": [
"pyperclip",
"clipboard",
"cross-platform",
"binary",
"bytes",
"files"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "7d4f4b02e2c232ddf694bca0baea3049b886eeb80ee3d89c415067f5191596c1",
"md5": "608a174777858ef9dd737b040745ccd1",
"sha256": "a7b7ea2cfad2dd61e86a529af588d006070d3eb0bd32981afaee5215f4604fec"
},
"downloads": -1,
"filename": "pyclip-0.7.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "608a174777858ef9dd737b040745ccd1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 18864,
"upload_time": "2022-10-31T21:13:33",
"upload_time_iso_8601": "2022-10-31T21:13:33.459636Z",
"url": "https://files.pythonhosted.org/packages/7d/4f/4b02e2c232ddf694bca0baea3049b886eeb80ee3d89c415067f5191596c1/pyclip-0.7.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "658a98ed02d81dea4b2211a4746724d7a271264b701c991fed503c246de52864",
"md5": "6f03fc99b9885686b8868798e027fd8e",
"sha256": "57602047a4ceab709bdcd42f3dde6449a3349b95c16154cfdce27376a2072491"
},
"downloads": -1,
"filename": "pyclip-0.7.0.tar.gz",
"has_sig": false,
"md5_digest": "6f03fc99b9885686b8868798e027fd8e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 13639,
"upload_time": "2022-10-31T21:13:34",
"upload_time_iso_8601": "2022-10-31T21:13:34.952553Z",
"url": "https://files.pythonhosted.org/packages/65/8a/98ed02d81dea4b2211a4746724d7a271264b701c991fed503c246de52864/pyclip-0.7.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-10-31 21:13:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "spyoungtech",
"github_project": "pyclip",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "pyclip"
}