🔌 BioPro SDK
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.tomlconfig, built to publish natively under thebiopro-sdkpackage.
🛠️ 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.
Release files for biopro-sdk 1.3.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| biopro_sdk-1.3.8.tar.gz | 91.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| biopro_sdk-1.3.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 178.8 kB
Release files / biopro_sdk-1.3.8.tar.gz
| Download URL | biopro_sdk-1.3.8.tar.gz |
|---|---|
| Size | 91.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
06845bf20657d733f6f03bebe5e0a9df95659a23ef8ae08865b49c16ce97a82f
|
|
BLAKE2b-256 checksum How to use checksums |
b0733181ef88e636c7466976503c20f15d45b08bd8aac9def91b18aa8d86f1c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency logRelease files / biopro_sdk-1.3.8-py3-none-any.whl
| Download URL | biopro_sdk-1.3.8-py3-none-any.whl |
|---|---|
| Size | 87.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
39f8ed45da97c5e512adcb8dc56b7a5afae24ff0022e5924c1a055b02e834f2f
|
|
BLAKE2b-256 checksum How to use checksums |
4d1508af7fa2810766b0e6ba6c233e627dabc252615add5f45b3942c85e5d568
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 7, 2026.
Transparency log