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

Uploaded Source

Built Distributions

sip-6.7.2-cp37-abi3-win_amd64.whl (605.4 kB view details)

Uploaded CPython 3.7+ Windows x86-64

sip-6.7.2-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl (943.0 kB view details)

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

sip-6.7.2-cp37-abi3-macosx_10_9_universal2.whl (739.3 kB view details)

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

File details

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

File metadata

  • Download URL: sip-6.7.2.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.2.tar.gz
Algorithm Hash digest
SHA256 325016c787d0bff20999c420339ad816fbfd39a7c49b2c4dcda12b63c379dbda
MD5 115a9d28658d6a7c6da491f9123eb2be
BLAKE2b-256 900507013eaf1b67fb3d3e6424edab495cde912d80d9ae4ea54c2b70a4bae9ac

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sip-6.7.2-cp37-abi3-win_amd64.whl
  • Upload date:
  • Size: 605.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.7.2-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4fcbec0dbf6576db7eea26ceaa46cf2c3bbddb9cb1d16b1551a419aade899aac
MD5 cf86137886885e45ff4738cb7732f39a
BLAKE2b-256 b738a525dd19b35765a679c42b3379fc46fe27b056081117a85cb53e6b4c43be

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sip-6.7.2-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl
  • Upload date:
  • Size: 943.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.2-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 9545b9a35711b59081cb28afe0e0ab65a9919cd86e2695b9d956acee2e808c17
MD5 d85240dc42af5495ad5e473c795989d7
BLAKE2b-256 152e6286044d6143fb35f5dc8a8647fce6ff5e5fc3eda5c5feb3359d1a10aace

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sip-6.7.2-cp37-abi3-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 739.3 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.2-cp37-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 20d59a2db70dfa2e3f4948504c23dc2f1c21012486f6b2344f25455694781ff9
MD5 524ee68ee0e76f17389b2d6dc008f9c3
BLAKE2b-256 77f9d4294bd1812e5e379c61c2a5278fbde35b5072d39191af25dd2257f77595

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