Skip to main content

Software Development Kit and CLI for BioPro.

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.7.tar.gz (85.1 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.7-py3-none-any.whl (81.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: biopro_sdk-1.2.7.tar.gz
  • Upload date:
  • Size: 85.1 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.7.tar.gz
Algorithm Hash digest
SHA256 4ad284a1873a3eb8cc5a0f2ac923c55878ae763a425a2b6a935b77fa0d4e9cce
MD5 fe6a0e70ca13cae00ce80b34f5a6bb2f
BLAKE2b-256 7ea7f8af9c27862a895f3067019f65f84972a2be87b55207addee54849b58c8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for biopro_sdk-1.2.7.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.7-py3-none-any.whl.

File metadata

  • Download URL: biopro_sdk-1.2.7-py3-none-any.whl
  • Upload date:
  • Size: 81.3 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 aaa769a1cf23279119303be713ae8580db7c4fb92a7be81fbf0763be20108db0
MD5 a8cd3f84f1f0a7fa9197f335e23f0338
BLAKE2b-256 1c4756759267d7135be630db02731c418ffa24259c4617398492e258c4724600

See more details on using hashes here.

Provenance

The following attestation bundles were made for biopro_sdk-1.2.7-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