Skip to main content

Class Widgets 2 Plugin SDK Development tools and type stubs

Project description

Class Widgets 2

Class Widgets SDK

Complete SDK, tools, and type hints for Class Widgets 2 plugin development.

PyPI version 星标 License

[!CAUTION]

本项目还处在开发阶段,API 接口可能随时发生变化,敬请谅解。

This project is still in development. The API may change at any time, so please bear with us.

Overview

class-widgets-sdk provides the essential base classes, development tools (like scaffolding and packaging), and complete type hints for creating plugins for Class Widgets 2.

This package provides the core SDK for development and must be installed in your plugin's environment. Plugins are executed within the Class Widgets 2 main application.

Installation

pip install class-widgets-sdk

Getting Started

1. Create a new plugin

Use the included CLI tool to generate a new plugin project structure:

cw-plugin-init com.example.myplugin

2. Install dependencies

Navigate to your new plugin directory and install the SDK in editable mode:

cd com.example.myplugin
pip install -e .

3. Usage (Base Class & Types)

The SDK provides the base class CW2Plugin and models for configuration, giving you full IDE autocompletion and static analysis support.

from ClassWidgets.SDK import CW2Plugin, ConfigBaseModel, PluginAPI

class MyConfig(ConfigBaseModel):
    enabled: bool = True
    text: str = "hEIlo, WoRId"

class MyPlugin(CW2Plugin):
    
    def __init__(self, api: PluginAPI):
        super().__init__(api)
        self.config = MyConfig()
    
    def on_load(self):
        self.api.config.register_plugin_model(self.pid, self.config)
        # Your IDE will provide full autocompletion here
        self.api.widgets.register(
            widget_id="com.example.mywidget",
            name="My Widget",
            qml_path="path/to/mywidget.qml"
        )

4. Package

Use the included CLI tool to build and package your plugin into a distributable .cwplugin or .zip file:

cw-plugin-pack

Tools

The SDK includes powerful command-line tools for plugin development and distribution:

Command Description
cw-plugin-init Generate a new plugin project scaffold.
cw-plugin-pack Build and package the plugin into a distributable .cwplugin or .zip file.
Learn more >

cw-plugin-init

Initialize a new Class Widgets plugin project with an interactive setup wizard.

Usage:

# Create plugin in current directory (interactive)
cw-plugin-init

# Create plugin in specific directory
cw-plugin-init my-plugin

# Force overwrite existing files
cw-plugin-init my-plugin --force

Flow:

  1. Select location (current dir or new folder)
  2. Enter plugin metadata (name, author, ID, etc.)
  3. Confirm and generate files

cw-plugin-pack

Build and package the plugin into a distributable .cwplugin or .zip file.

# Package current directory (default: .cwplugin)
cw-plugin-pack

# Specify format (.cwplugin or .zip)
cw-plugin-pack --format zip

# Specify output path
cw-plugin-pack -o ./dist/my-plugin.cwplugin

# Package specific directory
cw-plugin-pack ./my-plugin

Format

  • .cwplugin - Recommended plugin format
  • .zip - Standard archive format

How It Works

  1. Development: You install this SDK package to get base classes, type hints, autocompletion, and static type checking (with mypy/pyright) in your IDE.
  2. Runtime: When your plugin is loaded by the Class Widgets 2 main application, your CW2Plugin subclass is instantiated and executed.

[!IMPORTANT]

  • This package is the Development Kit for your plugin. Plugins must be tested within the Class Widgets 2 main application.
  • The import path for the SDK is ClassWidgets.SDK.

Links

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

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

class_widgets_sdk-0.2.0.tar.gz (210.4 kB view details)

Uploaded Source

Built Distribution

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

class_widgets_sdk-0.2.0-py3-none-any.whl (47.5 kB view details)

Uploaded Python 3

File details

Details for the file class_widgets_sdk-0.2.0.tar.gz.

File metadata

  • Download URL: class_widgets_sdk-0.2.0.tar.gz
  • Upload date:
  • Size: 210.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for class_widgets_sdk-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ea1db5eb87312350ec2b0c47652b22724d93a6e24afcda12b1ac7c301bf62d59
MD5 932239de5888dd519897e6a273291408
BLAKE2b-256 9bbc835e6442e72ddfdf91c95768395600411147b418557c421d9463d88608fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for class_widgets_sdk-0.2.0.tar.gz:

Publisher: python-publish.yml on Class-Widgets/class-widgets-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 class_widgets_sdk-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for class_widgets_sdk-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6395f92c5c1199829543da95c70d4c9071c222cf1728dba349b39150a8a154e3
MD5 3273fee94043cbb9732008ac2e4855e9
BLAKE2b-256 95c124babfb097950d161ad7a27dd7c56e529bae939f23d6cf72eb4b87777c26

See more details on using hashes here.

Provenance

The following attestation bundles were made for class_widgets_sdk-0.2.0-py3-none-any.whl:

Publisher: python-publish.yml on Class-Widgets/class-widgets-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