Skip to main content

A Cross Platform clipboard manager

Project description

Crossclip

A cross platform clipboard API for python.

Current State of the Package

Backends are written but untested. Package needs a better test suite.

Overview

About

Crossclip provides a standard python API for interacting with the system clipboard. As of now, Crossclip supports MacOS, Windows, and GNU/Linux desktop environments using Gtk and Qt environments. More environments can be added due to the modular design.

Dependencies

All systems

  • Pillow (5.4.0)

Linux

  • Gtk users: PyGObject
  • Qt users: PySide2

Windows

  • pywin32

Mac

  • pyobjc

Installation

This package is hosted on PyPI. Install via:

$ pip install crossclip

Usage

Here is an example program:

# Import the clipboard frontend class and Pillow Image package
from crossclip.clipboard import Clipboard
from PIL import Image

# Create a new clipboard instance
cb = Clipboard()

# Get text from the clipboard
mytext = cb.get_text()

# Get an image from the clipboard
myimg = cb.get_image() # myimg is a PIL.Image class

# Put text onto the clipboard
my_message = 'Hello World'
cb.set_text(my_message)

# Put an image onto the clipboard
cb.set_image(my_pil_image_instance)

# Access the backend instance
backend_text = cb.backend.get_text()

It's as easy as that. The frontend wraps all of the backend specifics and provides a simple, uniform interface.

Implementation Details

This library uses a collection of backends to provide clipboard functionality for a specific system or clipboard. For example, there is a clipboard backend for the Windows system clipboard and the Gtk+ clipboard. Each backend inherits from an abstract base class that provides a set of common abstract methods that each backend must implement.

Each of these backends are used in the frontend class, clipboard.Clipboard. The Clipboard class determines the backend to use based on the system platform determined by the sys.platform value. The Clipboard class carries an instance of the backend and uses its functions to provide clipboard functionality.

With a design like this, the library is extensible. New backends can be added and removed.

Contributing

See CONTRIBUTING.md

License

This package is licensed under the GPLv3.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crossclip-0.2.2.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

crossclip-0.2.2-py3-none-any.whl (24.0 kB view details)

Uploaded Python 3

File details

Details for the file crossclip-0.2.2.tar.gz.

File metadata

  • Download URL: crossclip-0.2.2.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.9.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for crossclip-0.2.2.tar.gz
Algorithm Hash digest
SHA256 926b7816446bc0a6508fdc4dd3511f9a328f851025dc9823f200347038954f29
MD5 966279f8f794f17d5e5447a369465484
BLAKE2b-256 67cc0284dafab67f8d6cf145c91e20c8157358fb741aa20b1aaec5113dcae988

See more details on using hashes here.

File details

Details for the file crossclip-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: crossclip-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 24.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.9.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for crossclip-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 15a81ee0f65ce137bb99f870feb369dd31bdda5af30d8d7bee75ece6c293f603
MD5 5551a78702f179d0cde82bebffdb0084
BLAKE2b-256 d0daf34e1c5fab92685dbc3e74f4ff083fb5a9708e7aab6f2db7c860e318484c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page