Skip to main content

Runs clientside callback functions in Dash applications using Python syntax, eliminating the need for inline JavaScript.

Project description

better-dash-callback

A library that enables running clientside callback functions in Dash applications using Python syntax, eliminating the need for inline JavaScript.

Problem

When building Dash applications, you often need to write clientside callback functions using inline JavaScript. This can be cumbersome and error-prone, especially for complex logic. Moreover, inline JavaScript code lacks syntax highlighting and debugging capabilities.

Solution

better-dash-callback provides a solution to this problem by allowing you to write clientside callback functions using Python syntax. This makes your code more readable, maintainable, and efficient.

Dependencies

better-dash-callback depends on metapensiero.pj, a Python-to-JavaScript compiler that allows you to write Python code that can be executed in a JavaScript environment.

Supported Python-to-JavaScript Syntax

The supported Python-to-JavaScript syntax is listed in the metapensiero.pj documentation. This includes support for many Python features, such as functions, classes, loops, and conditional statements.

Example

Let's consider a simple example where we want to update the text of a component based on the value of an input component.

Using Dash's clientside_callback

from dash import clientside_callback

clientside_callback(
    """
    function(value) {
        return 'You entered: ' + value;
    }
    """,
    Output("output", "children"),
    Input("input", "value")
)

Using better-dash-callback

from better-dash-callback import callback

@callback(
    Output("output", "children"),
    Input("input", "value"),
    clientside=True
)
def update_output(value):
    return f"You entered: {value}"

As you can see, the better-dash-callback example is more elegant and easier to read. You can write your callback function using Python syntax, without having to worry about inline JavaScript code, and the code you write also includes all the python syntax highlighting rather than being javascript code inside of a python string.

The callback function takes the following additional arguments:

  • clientside: A boolean indicating whether the callback should be executed on the client-side (default is False).
  • disable_es6: A boolean indicating whether to disable ES6 syntax in the generated JavaScript code and revert back to ES5 support (default is False).
  • enable_stage3: A boolean indicating whether to enable Stage 3 syntax in the generated JavaScript code (default is False).
  • Any arguments and keyword-arguments supported by dash.callback are also supported by better-dash-callback.callback

Installation

To install better-dash-callback, you can use pip:

pip3 install better-dash-callback

License

better-dash-callback is licensed under the MIT License.

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

better_dash_callback-0.1.4.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

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

better_dash_callback-0.1.4-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file better_dash_callback-0.1.4.tar.gz.

File metadata

  • Download URL: better_dash_callback-0.1.4.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for better_dash_callback-0.1.4.tar.gz
Algorithm Hash digest
SHA256 97fe19ba350b109913bb7bc89e565b5231356b57f5defdbf16f0638cc4e3a66e
MD5 dc097cec609b2b5f03108d64f5be44d9
BLAKE2b-256 4bf6a87c7c919593f644bffed73a87f1d6977e0a82cbd770ecb5ded0b6225630

See more details on using hashes here.

File details

Details for the file better_dash_callback-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for better_dash_callback-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0f8ca70c4d0007fbe1a5bd408e04333fef22d509ab9eda06c8f68ceda1395a2d
MD5 fbece5813d6d55005935583ae86f4e87
BLAKE2b-256 0fedf0e731ef54790e3fb973c46e2c3dbf74952a56ec856463fc526e1eeaa531

See more details on using hashes here.

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