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

Uploaded Python 3

File details

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

File metadata

  • Download URL: class_widgets_sdk-0.4.0.tar.gz
  • Upload date:
  • Size: 214.0 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.4.0.tar.gz
Algorithm Hash digest
SHA256 202c9b02a10453c43db5ec8cddc539172967782a17ec012f418a0aea07bf9599
MD5 79a1dbe39258500c0c792d31443e4615
BLAKE2b-256 783294e25f2e81cb0e32401cfa2abb23473da430cb36f71932c36a3d2a1d8c6e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for class_widgets_sdk-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fd7ddca7d4ae8c41279ac7deff51d780ed5f5ad586a27189f4aad3074feb72da
MD5 bd1befdf0466100405263a455fc21fdc
BLAKE2b-256 383676d5217e89e62bd108fecc9385d2c8c2670ae948ddf067b6b98f57a8e8c9

See more details on using hashes here.

Provenance

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