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.3.tar.gz (1.2 MB view details)

Uploaded Source

Built Distributions

sip-6.7.3-cp37-abi3-win_amd64.whl (608.0 kB view details)

Uploaded CPython 3.7+ Windows x86-64

sip-6.7.3-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl (901.8 kB view details)

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

sip-6.7.3-cp37-abi3-macosx_10_9_universal2.whl (734.9 kB view details)

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

File details

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

File metadata

  • Download URL: sip-6.7.3.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.3.tar.gz
Algorithm Hash digest
SHA256 564a7a8c5c1a42f1b69e9258af2b43ea31fbbab206d2e182e75c173caf7d83f8
MD5 bd11455eb49fa7483b503cce4b0e2b86
BLAKE2b-256 906d00a06681a7659135018d219f62239709804573cbe615dfa2ba3e8933e097

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sip-6.7.3-cp37-abi3-win_amd64.whl
  • Upload date:
  • Size: 608.0 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.3-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 138d0e4b28ac9b845bad5b24a83a4f6b6e071261e5d2d69f6686fdef7f03b566
MD5 bee887802fdff9d8a2698f21760cb288
BLAKE2b-256 93256f00c031f9e3df4b957dabca7cc7160c5baee369e1ccbf97c181aa6ce5b7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sip-6.7.3-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl
  • Upload date:
  • Size: 901.8 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.3-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 ce75bf447b107e6bf343efcbef059f9398ef337aeb4ae2c226f1205dfcfd5948
MD5 ccb1c3d043fc887e117dd5917412597e
BLAKE2b-256 147d06a4f972458e0476136c6d1dc8256bb3bd8de4b62e88a45c41bd304b54a2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sip-6.7.3-cp37-abi3-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 734.9 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.3-cp37-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f6a8e6058972b5f92ea054210519a4ca852237ab551872d4088b279d7a2cb875
MD5 9981d2aae83ce343a297d4e763be1873
BLAKE2b-256 761c3c43af8e30ce2652d1aa6b8ac8f163f50fc92498f2c92a4dac08ab6f129d

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