Skip to main content

Software Development Kit and CLI for BioPro desktop plugins.

Project description

🔌 BioPro SDK

Documentation CI Build Status License

The Software Development Kit (SDK) and Command-Line Interface (CLI) for building, validating, and signing plugins for the BioPro desktop scientific suite.


🚀 Key Features

  • Decoupled Architecture: Build and test PyQt6-based scientific plugins independently of the main desktop app.
  • Fail-Safe Dynamic Theme Fallbacks: Visual components automatically load custom HSL-tailored colors when running standalone inside CI/CD test gates or external visualizers.
  • Merkle-Tree Cryptographic Integrity: Built-in Ed25519 signing and verification tools to secure user environments against remote execution and tampering.
  • PyPI-Ready Packaging: Complete declarative pyproject.toml config, built to publish natively under the biopro-sdk package.

🛠️ Installation

Install the SDK directly into your plugin's virtual environment:

pip install biopro-sdk

(Or during development, install in editable mode):

git clone https://github.com/KalaimaranB/BioPro-SDK.git
cd BioPro-SDK
pip install -e .

📦 Creating a Custom BioPro Plugin

To build a valid plugin, implement the BioProPlugin interface and declare your entrypoints.

1. manifest.json

Every plugin must include a manifest file in its root directory:

{
  "id": "my_custom_plugin",
  "name": "My Custom Plugin",
  "version": "1.0.0",
  "author": "Dr. Kalaimaran",
  "description": "High-performance scientific analysis plugin.",
  "category": "analysis",
  "min_core_version": "1.0.0",
  "entrypoint": "plugin:MyPluginClass"
}

2. plugin.py

from PyQt6.QtWidgets import QWidget, QVBoxLayout, QLabel
from biopro_sdk.core.interfaces import BioProPlugin
from biopro_sdk.ui import PrimaryButton

class MyPluginClass(BioProPlugin):
    """A professional-grade BioPro plugin."""

    def initialize(self) -> None:
        self.logger.info("Initializing custom plugin...")

    def create_panel(self, parent=None) -> QWidget:
        panel = QWidget(parent)
        layout = QVBoxLayout(panel)

        title = QLabel("Welcome to Custom Analysis Panel")
        btn = PrimaryButton("Execute Step")

        layout.addWidget(title)
        layout.addWidget(btn)
        return panel

🛡️ Cryptographic Trust Architecture

BioPro implements a professional-grade Chain of Trust to protect laboratory environments:

[ Root Authority ] (Hardcoded Core Key)
       │
       ▼ (signs)
[ Developer Key ] (Dev Certificate)
       │
       ▼ (signs)
[ Plugin Manifest ] (Ed25519 Signature + Merkle-Tree Hashes)

1. Generate Your Cryptographic Identity

biopro-sdk setup-identity
  • Local Private Key: ~/.biopro/dev_private_key.pem
  • Developer Certificate: ~/.biopro/dev_cert.bin

2. Sign Your Plugin payload

Calculates Merkle-hashes for all your files recursively, excludes development directories automatically, updates manifest.json, and writes signature.bin:

biopro-sdk sign <path/to/plugin>

3. Modularity Compliance Check

Verify your plugin matches QA and security standards:

biopro-sdk evaluate <path/to/plugin>

📘 Standalone Preview Support

Since the SDK decouples all theme components from the desktop core using robust try-except fallbacks, you can instantiate and preview components standalone in development:

import sys
from PyQt6.QtWidgets import QApplication
from biopro_sdk.ui import PrimaryButton, WizardPanel

app = QApplication(sys.argv)
widget = WizardPanel()  # Renders beautifully even without the main app!
widget.show()
sys.exit(app.exec())

📄 License

This project is licensed under the MIT License.

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

biopro_sdk-1.2.6.tar.gz (68.5 kB view details)

Uploaded Source

Built Distribution

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

biopro_sdk-1.2.6-py3-none-any.whl (64.2 kB view details)

Uploaded Python 3

File details

Details for the file biopro_sdk-1.2.6.tar.gz.

File metadata

  • Download URL: biopro_sdk-1.2.6.tar.gz
  • Upload date:
  • Size: 68.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for biopro_sdk-1.2.6.tar.gz
Algorithm Hash digest
SHA256 971bd138c377d6f81775ed8382eb94254e1f1f1053bee1312dd0591cd84041c3
MD5 7f4923f9040aca2f852a163c1d33182c
BLAKE2b-256 3e093b09781db219c4205136e74ee11e6b74fb77ccfc92ab530b3eed8d0d1c4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for biopro_sdk-1.2.6.tar.gz:

Publisher: ci_cd.yml on KalaimaranB/BioPro-SDK

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file biopro_sdk-1.2.6-py3-none-any.whl.

File metadata

  • Download URL: biopro_sdk-1.2.6-py3-none-any.whl
  • Upload date:
  • Size: 64.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for biopro_sdk-1.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 7908816f85b3097810d2551ba01e09f083c28e9b39a9a1038c72301af7c81a55
MD5 f7fd31da8056f1728a8eb605eb4db6ae
BLAKE2b-256 1c83aebc9814c93bd1b9f25169fcc4a0d669f91ae1e6f5a753e775618abbb392

See more details on using hashes here.

Provenance

The following attestation bundles were made for biopro_sdk-1.2.6-py3-none-any.whl:

Publisher: ci_cd.yml on KalaimaranB/BioPro-SDK

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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