Skip to main content

A Python bindings generator for C/C++ libraries

Project description

What is SIP?

One of the features of Python that makes it so powerful is the ability to take existing libraries, written in C or C++, and make them available as Python extension modules. Such extension modules are often called bindings for the library.

SIP is a collection of tools that makes it very easy to create Python bindings for C and C++ libraries. It was originally developed in 1998 to create PyQt, the Python bindings for the Qt toolkit, but can be used to create bindings for any C or C++ library. For example it is also used to generate wxPython, the Python bindings for wxWidgets.

SIP comprises a set of build tools and a sip module. The build tools process a set of specification files and generates C or C++ code which is then compiled to create the bindings extension module. Several extension modules may be installed in the same Python package. Extension modules can be built so that they are are independent of the version of Python being used. In other words a wheel created from them can be installed with any version of Python starting with v3.5.

The specification files contain a description of the interface of the C or C++ library, i.e. the classes, methods, functions and variables. The format of a specification file is almost identical to a C or C++ header file, so much so that the easiest way of creating a specification file is to edit a copy of the corresponding header file.

The sip module provides support functions to the automatically generated code. The sip module is installed as part of the same Python package as the generated extension modules. Unlike the extension modules the sip module is specific to a particular version of Python (e.g. v3.5, v3.6, v3.7, v3.8).

SIP makes it easy to exploit existing C or C++ libraries in a productive interpretive programming environment. SIP also makes it easy to take a Python application (maybe a prototype) and selectively implement parts of the application (maybe for performance reasons) in C or C++.

Author

SIP is copyright (c) Riverbank Computing Limited. Its homepage is https://www.riverbankcomputing.com/software/sip/.

Support may be obtained from the PyQt mailing list at https://www.riverbankcomputing.com/mailman/listinfo/pyqt/.

License

SIP is released under the GPL v2, GPL v3 licenses, and under a license similar to the BSD license.

Installation

SIP can be installed from PyPI:

pip install sip

Documentation

The documentation for the latest release can be found here.

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

sip-6.7.1.tar.gz (1.2 MB view details)

Uploaded Source

Built Distributions

sip-6.7.1-cp37-abi3-win_amd64.whl (587.3 kB view details)

Uploaded CPython 3.7+ Windows x86-64

sip-6.7.1-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl (939.0 kB view details)

Uploaded CPython 3.7+ manylinux: glibc 2.5+ x86-64

sip-6.7.1-cp37-abi3-macosx_10_9_universal2.whl (723.8 kB view details)

Uploaded CPython 3.7+ macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file sip-6.7.1.tar.gz.

File metadata

  • Download URL: sip-6.7.1.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/57.0.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.0

File hashes

Hashes for sip-6.7.1.tar.gz
Algorithm Hash digest
SHA256 28170fdf880f937026fc87faa9c177b062c353c5d169ea3242b07802614ddd0c
MD5 ea2c62c6eb150dafea08eca0bc682dc7
BLAKE2b-256 280987e20f2be19051bea42df699947aba30f84422908ec2b8d827bcdf0ab365

See more details on using hashes here.

File details

Details for the file sip-6.7.1-cp37-abi3-win_amd64.whl.

File metadata

  • Download URL: sip-6.7.1-cp37-abi3-win_amd64.whl
  • Upload date:
  • Size: 587.3 kB
  • Tags: CPython 3.7+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/57.0.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.0

File hashes

Hashes for sip-6.7.1-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e619c6c59844e64b07bc703212a9c4c5590712ef8555082f74ae497604fdd830
MD5 b593357647dd179154c50a1df38e24a2
BLAKE2b-256 df82e5c50327f1624b1ed2e5ee7369ceacef98bfe6c1e1a45bf426a8c57c939e

See more details on using hashes here.

File details

Details for the file sip-6.7.1-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

  • Download URL: sip-6.7.1-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl
  • Upload date:
  • Size: 939.0 kB
  • Tags: CPython 3.7+, manylinux: glibc 2.5+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/57.0.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.0

File hashes

Hashes for sip-6.7.1-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 87d1403aaf1f7a184dd683bd8891428a8651dd9fed482008e1e8beff8e31ed04
MD5 825a6fa1178c5eea290dabb65fdc664b
BLAKE2b-256 e0a9feb7e5edc4cbbc88b3b5216c2cd086718cf9244eb9f120fd5c3e3e6c1d67

See more details on using hashes here.

File details

Details for the file sip-6.7.1-cp37-abi3-macosx_10_9_universal2.whl.

File metadata

  • Download URL: sip-6.7.1-cp37-abi3-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 723.8 kB
  • Tags: CPython 3.7+, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/57.0.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.0

File hashes

Hashes for sip-6.7.1-cp37-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5b6e8e417a62e35c9094cc9f8418b277380856abc34fa51b48f067e429fc9675
MD5 131853aa2691b00c12bc5bcb3eb24bfe
BLAKE2b-256 c7eb1e5ddce43124ae1e7f8c4300d3a26a0f408b1d58fc822357973c4bde9ab4

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