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

Uploaded Source

Built Distributions

sip-6.6.2-cp37-abi3-win_amd64.whl (576.4 kB view details)

Uploaded CPython 3.7+ Windows x86-64

sip-6.6.2-cp37-abi3-manylinux2014_x86_64.whl (979.0 kB view details)

Uploaded CPython 3.7+

sip-6.6.2-cp37-abi3-macosx_10_9_universal2.whl (712.2 kB view details)

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

File details

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

File metadata

  • Download URL: sip-6.6.2.tar.gz
  • Upload date:
  • Size: 1.1 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.6.2.tar.gz
Algorithm Hash digest
SHA256 0e3efac1c5dfd8e525ae57140927df26993e13f58b89d1577c314f4105bfd90d
MD5 620eb75a8b22fb6af9c6044aa015782d
BLAKE2b-256 5bcbc27c925ae07bd03a2597fa1db17bfc2a4ac57da61aeb90f8ec98ffbb975b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sip-6.6.2-cp37-abi3-win_amd64.whl
  • Upload date:
  • Size: 576.4 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.6.2-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a72fd49e49af4b21368b154abe44bd7d84115c528048c4f85b29b9be26a63b30
MD5 89e1b1173073115d42f6bea3e495707e
BLAKE2b-256 f25cda3191e91d4499991d5e5ceb203b1ca6e622b81e0cf5291c16169360d7b9

See more details on using hashes here.

File details

Details for the file sip-6.6.2-cp37-abi3-manylinux2014_x86_64.whl.

File metadata

  • Download URL: sip-6.6.2-cp37-abi3-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 979.0 kB
  • Tags: CPython 3.7+
  • 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.6.2-cp37-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e1ba27268c77347cc4dc58d6548c39fa95eeaab90ba632413cab1cef8f94f8ba
MD5 7e328be652ade1f1457c48cd3d3ef145
BLAKE2b-256 38371df1141cf41813317df89a83533d79aca6efc69b134c251a1535e8af66ef

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sip-6.6.2-cp37-abi3-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 712.2 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.6.2-cp37-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 23dd338383479526c6e70262e00364c73df8c3e42aaca7d6783e32b00f48fe3e
MD5 540ec97a42fd0b2d9694a1f01454181a
BLAKE2b-256 424e4bfaa71834685011d1f2e6db1b6e464b4c514a26e5f9a0063743f6097a47

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