Name | sip JSON |
Version |
6.9.0
JSON |
| download |
home_page | None |
Summary | A Python bindings generator for C/C++ libraries |
upload_time | 2024-12-05 16:54:34 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.9 |
license | Copyright 2024 Phil Thompson <phil@riverbankcomputing.com> Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# SIP - A Python Bindings Generator for C and C++ Libraries
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](https://pypi.org/project/PyQt6/), 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](https://wxpython.org/), the
Python bindings for [wxWidgets](https://wxwidgets.org/).
SIP comprises a set of build tools and a `sip` module. The build tools process
a set of `.sip` 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.
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.9, v3.10, v3.11, v3.12,
v3.13).
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++.
[MetaSIP](https://github.com/Python-SIP/metasip/) is a GUI development for SIP
that can take the header files of a C/C++ library into a project from which API
items can be managed, compared with new versions etc. and from which the `.sip`
specification files can be generated from.
## Documentation
The documentation can be found at
[Read the Docs](https://python-sip.readthedocs.io).
## License
SIP is licensed under the BSD 2 clause license.
SIP includes a copy of [ply](https://github.com/dabeaz/ply/) which is licensed
under the BSD 3 clause license.
## Installation
To install SIP, run:
pip install sip
## Creating Packages for Distribution
Python sdists and wheels can be created with any standard Python build
frontend.
For example, using [build](https://pypi.org/project/build/) an sdist and wheel
will be created from a checkout in the current directory by running:
python -m build --outdir .
## Building the Documentation
The documentation is built using [Sphinx](https://pypi.org/project/Sphinx/),
[myst_parser](https://pypi.org/project/myst-parser/) and the
[sphinx-rtd-theme](https://pypi.org/project/sphinx-rtd-theme/) theme.
Change to the `docs` directory of a checkout and run:
make html
The HTML documentation can then be found in the `_build/html` subdirectory.
Raw data
{
"_id": null,
"home_page": null,
"name": "sip",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "Phil Thompson <phil@riverbankcomputing.com>",
"download_url": "https://files.pythonhosted.org/packages/b8/dc/17b69b375103aa3db633b3f1f46bf7030cbe516b2b6d5dc73b7668a7840d/sip-6.9.0.tar.gz",
"platform": null,
"description": "# SIP - A Python Bindings Generator for C and C++ Libraries\n\nOne of the features of Python that makes it so powerful is the ability to take\nexisting libraries, written in C or C++, and make them available as Python\nextension modules. Such extension modules are often called bindings for the\nlibrary.\n\nSIP is a collection of tools that makes it very easy to create Python bindings\nfor C and C++ libraries. It was originally developed in 1998 to create\n[PyQt](https://pypi.org/project/PyQt6/), the Python bindings for the Qt\ntoolkit, but can be used to create bindings for any C or C++ library. For\nexample it is also used to generate [wxPython](https://wxpython.org/), the\nPython bindings for [wxWidgets](https://wxwidgets.org/).\n\nSIP comprises a set of build tools and a `sip` module. The build tools process\na set of `.sip` specification files and generates C or C++ code which is then\ncompiled to create the bindings extension module. Several extension modules\nmay be installed in the same Python package. Extension modules can be built so\nthat they are are independent of the version of Python being used.\n\nThe specification files contain a description of the interface of the C or C++\nlibrary, i.e. the classes, methods, functions and variables. The format of a\nspecification file is almost identical to a C or C++ header file, so much so\nthat the easiest way of creating a specification file is to edit a copy of the\ncorresponding header file.\n\nThe `sip` module provides support functions to the automatically generated\ncode. The `sip` module is installed as part of the same Python package as the\ngenerated extension modules. Unlike the extension modules the `sip` module is\nspecific to a particular version of Python (e.g. v3.9, v3.10, v3.11, v3.12,\nv3.13).\n\nSIP makes it easy to exploit existing C or C++ libraries in a productive\ninterpretive programming environment. SIP also makes it easy to take a Python\napplication (maybe a prototype) and selectively implement parts of the\napplication (maybe for performance reasons) in C or C++.\n\n[MetaSIP](https://github.com/Python-SIP/metasip/) is a GUI development for SIP\nthat can take the header files of a C/C++ library into a project from which API\nitems can be managed, compared with new versions etc. and from which the `.sip`\nspecification files can be generated from.\n\n\n## Documentation\n\nThe documentation can be found at\n[Read the Docs](https://python-sip.readthedocs.io).\n\n\n## License\n\nSIP is licensed under the BSD 2 clause license.\n\nSIP includes a copy of [ply](https://github.com/dabeaz/ply/) which is licensed\nunder the BSD 3 clause license.\n\n\n## Installation\n\nTo install SIP, run:\n\n pip install sip\n\n\n## Creating Packages for Distribution\n\nPython sdists and wheels can be created with any standard Python build\nfrontend.\n\nFor example, using [build](https://pypi.org/project/build/) an sdist and wheel\nwill be created from a checkout in the current directory by running:\n\n python -m build --outdir .\n\n\n## Building the Documentation\n\nThe documentation is built using [Sphinx](https://pypi.org/project/Sphinx/),\n[myst_parser](https://pypi.org/project/myst-parser/) and the\n[sphinx-rtd-theme](https://pypi.org/project/sphinx-rtd-theme/) theme.\n\nChange to the `docs` directory of a checkout and run:\n\n make html\n\nThe HTML documentation can then be found in the `_build/html` subdirectory.\n",
"bugtrack_url": null,
"license": "Copyright 2024 Phil Thompson <phil@riverbankcomputing.com> Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \u201cAS IS\u201d AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ",
"summary": "A Python bindings generator for C/C++ libraries",
"version": "6.9.0",
"project_urls": {
"homepage": "https://github.com/Python-SIP/sip"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5c940a7379def91d4906c1b6ebe0e197f919cbdfbb7df9ff8e32f544a6ad8346",
"md5": "42b6d5485f19a4ae20e2a3299920368c",
"sha256": "14372104b5dd054a18199133aa9697970c969003d509d05aa54576f3ace7c3ac"
},
"downloads": -1,
"filename": "sip-6.9.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "42b6d5485f19a4ae20e2a3299920368c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 471104,
"upload_time": "2024-12-05T16:54:30",
"upload_time_iso_8601": "2024-12-05T16:54:30.969080Z",
"url": "https://files.pythonhosted.org/packages/5c/94/0a7379def91d4906c1b6ebe0e197f919cbdfbb7df9ff8e32f544a6ad8346/sip-6.9.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b8dc17b69b375103aa3db633b3f1f46bf7030cbe516b2b6d5dc73b7668a7840d",
"md5": "a13823d17c771f0c72845de98d048bc9",
"sha256": "093fd0e15d99ae2f8a83dd7f7dbaa3ff250c582a77eb8e0845cd9acadb1f0934"
},
"downloads": -1,
"filename": "sip-6.9.0.tar.gz",
"has_sig": false,
"md5_digest": "a13823d17c771f0c72845de98d048bc9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 421347,
"upload_time": "2024-12-05T16:54:34",
"upload_time_iso_8601": "2024-12-05T16:54:34.645755Z",
"url": "https://files.pythonhosted.org/packages/b8/dc/17b69b375103aa3db633b3f1f46bf7030cbe516b2b6d5dc73b7668a7840d/sip-6.9.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-05 16:54:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Python-SIP",
"github_project": "sip",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "sip"
}