Skip to main content

MultiPlug

The MultiPlug library is used for creating flexible plugin systems for Python programs, supporting multiple programming languages.

For example, a CLI script based on this library can take the name of a module as one of its command line arguments and import and use the module. The user of the script will then select a plugin e.g. from a plugin collection or writing it according to a given API specification.

Features

Main features of the library:

  • the library allows the dynamic import of a plugin module, given its filename
  • plugins can be written in Python, Nim, Rust and Bash
  • the calling code is (in most cases) independent of the plugin implementation language
  • plugin modules are automatically (re-)compiled, when necessary (thanks to the nimporter and maturin libraries)
  • a wrapper mechanism allows to support Bash plugins
  • systems are provided for defining module-level constants when importing Nim and Rust modules
  • basic aspects of the plugin interface (names of the required and optional module-level public functions and constants) can be specified and automatically checked

Installation

The Python libraries listed in requirements.txt are installed automatically, if MultiPlug is installed using pip, and can otherwise be installed using pip install -r requirements.txt.

For supporting plugins written in Nim, the Nim compiler must be installed in the system and the nimpy library installed, e.g. using nimble install nimpy. Furthermore, for using the exportpy_consts macro in Nim plugins, run nimble install in the multiplug_nim directory.

For supporting plugins written in Rust, the Rust compiler must be installed in the system and the PyO3 library installed, e.g. using cargo install PyO3.

Usage

The usage of the library is explained in the user manual.

Metadata

Release files for multiplug 1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for multiplug 1.2
File Size Uploaded
multiplug-1.2.tar.gz 22.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for multiplug 1.2
File Interpreter ABI Platform
multiplug-1.2-py3-none-any.whl Python 3 none any Details

Total release size: 33.8 kB

Release files / multiplug-1.2.tar.gz

Download URL multiplug-1.2.tar.gz
Size 22.6 kB
Tags Source
SHA-256 checksum
How to use checksums
9cac32f16c1077400133767aa39ebe356f5e808327a5d6a6eba611ac03ea4846
BLAKE2b-256 checksum
How to use checksums
1d7a5e5766781498b75c6fee7f103b813e3978bde7a251f498c7edb101a6d187
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.5

Release files / multiplug-1.2-py3-none-any.whl

Download URL multiplug-1.2-py3-none-any.whl
Size 11.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
48efa894f1b893a9ee141a57847fffb4d5023ccd020b7404264dadac8d5bceda
BLAKE2b-256 checksum
How to use checksums
ac9170e10fd3a2eb1e276f47e1578fcda19700e3571a8f28c53573a8951cedcc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.5

Release history Release notifications | RSS feed

This release

1.2 This release

2 release files

1.1

2 release files

1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page