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

Uploaded Python 3

File details

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

File metadata

  • Download URL: class_widgets_sdk-0.3.1.tar.gz
  • Upload date:
  • Size: 212.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.3.1.tar.gz
Algorithm Hash digest
SHA256 5130542659a2273b9d5f60f1585ea953d3a0068d9c44d64f402f72a63e9ee7da
MD5 508b448bdacdfd85cf291251f06aba62
BLAKE2b-256 1980ce4e2706229db7db3088a987d324656cf9dcf88bb70a924131e99009f085

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for class_widgets_sdk-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c7121ee9c873737bc7d59084f6e494119a73ade1d3dacc81fdd21615d8e17935
MD5 aff66342036db7965ba7f8c21e4c1614
BLAKE2b-256 2f9a39d970356d86204d87f2cfb1a611977ae677c347b9cada937b6d2793e9b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for class_widgets_sdk-0.3.1-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