Skip to main content

No project description provided

Project description

Shellac Webview

A Selenium wrapper for building desktop applications using web technologies. It uses FastAPI for backend communication and Selenium for browser automation.

Installation

pip install shellac-webview

Basic Usage

from shellac import Window

win = Window()

@win.bind
def my_function(event):
    return "Data from Python"

html = """
<button onclick="run()">Run</button>
<script>
    async function run() {
        const result = await webui.call("my_function");
        console.log(result);
    }
</script>
"""

win.show(html)
win.wait()

Binding

You can bind functions in python to be called from js using webui.call("func_name")

Function Binding

You can bind a specific function to a name.

def my_function(event):
    return f"Hello, {event.data[0]}!"

win.bind("greet", my_function)

JS Usage:

const response = await webui.call("greet", "Alice");
console.log(response); // "Hello, Alice!"

Decorator Binding

Use the @bind decorator for a cleaner syntax.

@win.bind
def calculate(event):
    return event.data[0] * 2

JS Usage: webui.call("calculate", 21);

Class/Namespace Binding

You can bind an entire class or instance. All public methods (not starting with _) will be available in JavaScript.

@win.bind("db")
class Database:
    def get_user(self, event):
        return {"id": event.data[0], "name": "John Doe"}

or with

win.bind("db", Database())

JS Usage:

const user = await webui.call("db.get_user", 1);

Class Mapping

If you bind a class without a prefix, its methods are mapped to the top-level.

class API:
    def status(self, event):
        return "Online"

win.bind(API)

JS Usage: webui.call("status");

The Event Object

Every bound Python function receives an Event object as its first argument.

  • event.window: The Window instance.
  • event.data: A list of arguments passed from JavaScript.
  • event.element: The name of the function called.

Window Configuration

You can configure the window size and behavior before calling show().

win = Window()
win.config.width = 1200
win.config.height = 900
win.config.hide_controls = True # Hides address bar/tabs (App Mode)
win.config.kiosk = False        # Fullscreen mode

Browser Selection

By default, the library looks for Chrome, Edge, or Firefox. You can force a specific browser:

from webui import Browser

win.show("index.html", browser=Browser.Firefox)

Available options: Chrome, Firefox, Edge, Chromium, Brave, Vivaldi.

Other functions

Once the window is running, you can navigate to new pages or execute JavaScript from Python.

# Navigate to a new URL
win.navigate("https://google.com")

# Execute JS directly
win.run_js("alert('Hello from Python!')")

# Change title
win.set_title("New Title")

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

shellac_webview-1.1.4.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

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

shellac_webview-1.1.4-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file shellac_webview-1.1.4.tar.gz.

File metadata

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

File hashes

Hashes for shellac_webview-1.1.4.tar.gz
Algorithm Hash digest
SHA256 5e1a88d45eca7d26bc5d6d9e9dadd77b1ccc0348b472c9dd30a5cd6779aff4d9
MD5 c9b8808df503d29fc6a1142002660d38
BLAKE2b-256 a695b0ed1d2c2015eb847c6ff8adbb8c07e0e5ca06199247ec534a8c2d1de3e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for shellac_webview-1.1.4.tar.gz:

Publisher: release.yml on Sharkow1743/shellac-webview

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shellac_webview-1.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for shellac_webview-1.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b7f5a99b83a025d8d76f7990900c1dfc86b97ae935dd7a32d1eed04099baa060
MD5 543ba8f2e1421450047c9ab41eb61546
BLAKE2b-256 e52dedc25e3afe8bb6aa29684503dac2d40a86a757bbb66e2e26c526a4755f04

See more details on using hashes here.

Provenance

The following attestation bundles were made for shellac_webview-1.1.4-py3-none-any.whl:

Publisher: release.yml on Sharkow1743/shellac-webview

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