Skip to main content

Clipboard utilities for use with Python.

Project description

PyPI Read the Docs Tests

PyPI - Python Version PyPI - License

pre-commit Code style: black

Description

Package for accessing the clipboard with Python.

Installation

pip install clip-util

Features

Windows Only

Allows you to set text, RTF, and HTML to the clipboard on Windows. Any other format can also be specified using the format type integer, specified by Windows.

Supported Clipboard Formats

  • Text
  • HTML
  • RTF

Usage

Clipboard

Will open and close every time the values are set, or retrieved. It's better to use a context manager.

from clipboard import Clipboard


clipboard = Clipboard()

# Set Clipboard
clipboard["text"] = "Hello World!"
# OR
clipboard.set_clipboard("Hello World!")

# Get Clipboard
text = clipboard["text"]
# OR
text = clipboard.get_clipboard("text")

# Supports HTML
clipboard["html"] = "<h1>Hello World</h1>"

Context Manager

from clipboard import Clipboard


with Clipboard() as clipboard:

    # Set Clipboard
    clipboard["text"] = "Hello World!"
    # OR
    clipboard.set_clipboard("Hello World!")

    # Get Clipboard
    text = clipboard["text"]
    # OR
    text = clipboard.get_clipboard("text")

    # HTML
    clipboard["html"] = "<h1>Hello World</h1>"

Clipboard Formats

You can use clip-util to access the clipboard formats directly.

ClipboardFormat: Enum for clipboard formats.

ClipboardFormat.CF_HTML: Represents HTML format.

ClipboardFormat.CF_RTF: Represents RTF format.

from clipboard import Clipboard
from clipboard import ClipboardFormat
from clipboard import get_format_name


with Clipboard() as clipboard:

    # Get All Available Formats
    format_ids: list[int] = clipboard.available_formats()

    # Get Specific Format by ID
    # Use parentheses to access the format by ID
    formats: list[ClipboardFormat] = []
    format_id: int
    for format_id in format_ids:
        if format_id in ClipboardFormat:
            format_: ClipboardFormat = ClipboardFormat(format_id)
            formats.append(format_)
        else:
            # Format is not supported directly by this library
            pass

    # Get Specified Format by Name (directly)
    format_names: list[str] = []
    format_id: int
    for format_id in format_ids:
        name: str = get_format_name(format_id)
        format_names.append(name)

    # Get Specified Format by Name (using enum)
    # Use bracket notation to access the format
    #
    # Note: this method is not as robust as using `get_format_name`
    formats: list[ClipboardFormat] = []
    format_names: list[str] = []
    format_name: str
    for format_name in [f.name for f in formats]:
        if format_name in ClipboardFormat:
            format_: ClipboardFormat = ClipboardFormat[format_name]
            name: str = format_.name
            formats.append(format_)
            format_names.append(name)
        else:
            # Format is not supported directly by this library
            pass

Get All Supported Formats

You can even get the content of all available formats currently in the clipboard.

from clipboard import get_available_formats
from clipboard import get_format_name
from clipboard import get_clipboard


available: list[int] = get_available_formats()
print(f"{available=}")

for format_id in available:
    name: str = get_format_name(format_id)
    content: str = get_clipboard(format_id)
    print(f"{format_id=}", f"{name=}, {content=}")

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

clip_util-0.1.29.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clip_util-0.1.29-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file clip_util-0.1.29.tar.gz.

File metadata

  • Download URL: clip_util-0.1.29.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for clip_util-0.1.29.tar.gz
Algorithm Hash digest
SHA256 ecd3e8999ebb0f4ec3cf5fc47fd54ec7b45116bcaf35ff94dcdfc5980b108d3c
MD5 59d9a2783fa119a542cb5c6cb489df72
BLAKE2b-256 2c4f04410d9f49c0ce41521c7c3d35ea2c0c4e2c6f9f94ce42c7a0269cdef05c

See more details on using hashes here.

File details

Details for the file clip_util-0.1.29-py3-none-any.whl.

File metadata

  • Download URL: clip_util-0.1.29-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for clip_util-0.1.29-py3-none-any.whl
Algorithm Hash digest
SHA256 d001c2895f7d93cbb6011db7c74b6d6d18c6c1e80bf046f8b5a074d187aaa4e4
MD5 f472764cb6c15d48175956c98fed85dc
BLAKE2b-256 e7ac8723e2209977c50b0da64ad362a8d912752f079326c8f022315ad11ef4bf

See more details on using hashes here.

Supported by

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