Skip to main content

GUI Development Tool for SIP

Project description

MetaSIP - a GUI Development Tool for SIP

SIP is a Python bindings generator for C and C++ libraries. It takes as its input a set of .sip text files that describes the history of the API of the library. A .sip file is similar to a C/C++ header file but with addional directives, annotations and supplementary hand-written C/C++ code.

MetaSIP (specifically the msip application) is a GUI tool for specifying the complete history of a library's API allowing additional directives, annotations and hand-written code to be added. A .msp project file is used to store this information and MetaSIP (specifically the msipgen application) can generate an appropriate set of .sip files to feed to SIP.

The key feature of MetaSIP is that it can scan the header files of a particular version of a library in order to initially populate the project file. It will then indicate all of the tasks that might need to be performed in order to complete the implementation of the bindings. It will also scan a new version of the library, compare it with the previous version, update the project file appropriately, and indicate any new tasks that now might need to be performed in order to keep the bindings up to date. These features make it relatively easy to maintain the bindings for a large library.

Currently the scanning of a library's header files is done using CastXML and this must also be installed.

MetaSIP is implemented with Python and PyQt6.

It should be noted that MetaSIP was developed a number of years ago by the author as a personal productivity tool. As a result it is fairly feature complete. However because it has not been used by a significant number of people, its behavour may seem quirky in places. It is certainly poorly documented with no online help.

Documentation

The documentation can be found at Read the Docs.

License

MetaSIP is licensed under the BSD 2 clause license.

Installation

To install msipgen, run:

pip install metasip

To install the additional dependencies required by the msip GUI development tool, run:

pip install 'metasip[gui]'

Creating Packages for Distribution

Python sdists and wheels can be created with any standard Python build frontend.

For example, using 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, myst_parser and the 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.

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

metasip-2.15.0.tar.gz (84.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

metasip-2.15.0-py3-none-any.whl (156.3 kB view details)

Uploaded Python 3

File details

Details for the file metasip-2.15.0.tar.gz.

File metadata

  • Download URL: metasip-2.15.0.tar.gz
  • Upload date:
  • Size: 84.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.0

File hashes

Hashes for metasip-2.15.0.tar.gz
Algorithm Hash digest
SHA256 bd2912c681bd7f788a552380e3a996288949c71a2facdcb9793b0b666a2d18e5
MD5 663a8355acb9abea143b4c42fa2cae53
BLAKE2b-256 bd582e025697c618e824ccce1fea9e5f5fd17d9d0467b55ff172f92bebde372a

See more details on using hashes here.

File details

Details for the file metasip-2.15.0-py3-none-any.whl.

File metadata

  • Download URL: metasip-2.15.0-py3-none-any.whl
  • Upload date:
  • Size: 156.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.0

File hashes

Hashes for metasip-2.15.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f62114ae735d3da99f4c31ae595816c61db54b297a92ab8cbc38c6f9462f1686
MD5 53169e7113090ef8462d105ebd44b5f5
BLAKE2b-256 8912d7bb4d6bfd00ce102ec0212ce82d12ce9ad5d8f4f2b455e7f81a0a7b8f7f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page