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

Uploaded Source

Built Distributions

sip-6.5.0-cp36-abi3-win_amd64.whl (538.0 kB view details)

Uploaded CPython 3.6+ Windows x86-64

sip-6.5.0-cp36-abi3-manylinux2014_x86_64.whl (994.1 kB view details)

Uploaded CPython 3.6+

sip-6.5.0-cp36-abi3-macosx_10_9_universal2.whl (706.1 kB view details)

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

File details

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

File metadata

  • Download URL: sip-6.5.0.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.5.0.tar.gz
Algorithm Hash digest
SHA256 a1cf8431a8eb9392b3ff6dc61d832d0447bfdcae5b3e4256a5fa74dbc25b0734
MD5 6f8ba47dca4f54b6a83a5facaf747cf7
BLAKE2b-256 074e0de6d5872145f4cedf187aa8a9069ba91d7e293a82cbbaeabd10c45e9cf0

See more details on using hashes here.

File details

Details for the file sip-6.5.0-cp36-abi3-win_amd64.whl.

File metadata

  • Download URL: sip-6.5.0-cp36-abi3-win_amd64.whl
  • Upload date:
  • Size: 538.0 kB
  • Tags: CPython 3.6+, 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.5.0-cp36-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 75ca74f5a6a2024dd984aece7ecc78676ec99be218b504744392dfbdf2d4200a
MD5 4e4fcee167f5c23107b37330f27ddf52
BLAKE2b-256 e29aedc29b3ec6ca35f71f55d8c3f6d7501a371c8e47b898743df500d2539625

See more details on using hashes here.

File details

Details for the file sip-6.5.0-cp36-abi3-manylinux2014_x86_64.whl.

File metadata

  • Download URL: sip-6.5.0-cp36-abi3-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 994.1 kB
  • Tags: CPython 3.6+
  • 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.5.0-cp36-abi3-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 71332c6f209a45bf019a352fe0374fa9d58fe1f6970c8e13dbeec62e5bab2114
MD5 b66442ed54501f864868f7bd082eb129
BLAKE2b-256 edb5aee32bad9d6f2750c756826e30e0844e6ba8918c1aaa135465dad1324ed3

See more details on using hashes here.

File details

Details for the file sip-6.5.0-cp36-abi3-macosx_10_9_universal2.whl.

File metadata

  • Download URL: sip-6.5.0-cp36-abi3-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 706.1 kB
  • Tags: CPython 3.6+, 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.5.0-cp36-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 28edf2e20db20ebf135e94e3295d8a90427e4ea461337413bf3ff2ce31bbdafe
MD5 8c1712cf2f8c0d9ade96e4f9bcc97745
BLAKE2b-256 12d6a0ceb81f3fa054c6c3909baba923f89b018fefc067b69e40893dc62ea580

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