Skip to main content

CleverMaps Marimo Widget - A widget for embedding CleverMaps visualizations in Marimo notebooks.

Project description

CleverMaps Jupyter Widget

A Jupyter widget for embedding and interacting with CleverMaps visualizations in Jupyter notebooks.

Installation

You can install the package using pip:

pip install clevermaps-jupyter-widget

Requirements

  • Python >= 3.9
  • Jupyter notebook or JupyterLab
  • anywidget

Usage

Basic Usage

from cm_jupyter_widget.widget import CleverMapsWidget

# Create a widget with a view URL
widget = CleverMapsWidget(view_url="https://your-view-url")

# Display the widget
widget

Advanced Usage with Options

# Create a widget with custom options
widget = CleverMapsWidget(
    view_url="https://your-view-url",
    options='''{
        "componentSettings": {
            "infoBox": {
                "defaultExpanded": false
            },
            "tools": {
                "search": false
            }
        },
        "theme": {
            "colorPrimary": "#0055ff"
        },
        "interactivity": {
            "afterClick": false
        },
        "fullScreenButton": {
            "enabled": false
        },
        "studioLinkButton": {
            "enabled": false
        }
    }'''
)

API Reference

Widget Properties

  • view_url (required): The URL of the CleverMaps view to display
  • base_url (optional): The base URL for CleverMaps API (defaults to 'https://secure.clevermaps.io/')
  • options (optional): A JSON string containing configuration options for the widget
  • width (optional): The width of the widget (e.g. '100%', '500px', '1000px')
  • height (optional): The height of the widget (e.g. '100%', '500px', '1000px')
  • add_filter_callback (optional): A Python function that will be called when a filter is added. The function will be called without any arguments.

Methods

toggle_fit_all()

Fits all features in the current view.

add_filter(definition_id: str, values: Dict[str, Any], instance_id: str)

Adds a new filter to the view.

Parameters:

  • definition_id: The ID of the filter definition
  • values: Filter values (format depends on filter type)
  • instance_id: The instance ID of the filter

Filter value formats:

  • MultiSelect: {"values": ["Male", 1, null]}
  • SingleSelect: {"value": "selected_value"} or {"value": null}
  • Feature: {"values": ["feature1", 1]} or {"values": null}
  • Histogram: {"values": [1, 10], "nullFiltered": true} or {"values": [null, null]}
  • Date: {"startDate": {"value": "2023-01-01"}, "endDate": {"value": "2023-12-31"}}
  • Indicator: {"values": [min, max], "granularity": "year"}

set_filter(instance_id: str, value)

Sets the value of an existing filter.

Parameters:

  • instance_id: The instance ID of the filter to set
  • value: The new filter value

remove_filter(instance_id: str)

Removes a filter from the view.

Parameters:

  • instance_id: The instance ID of the filter to remove

reset_filter(instance_id: str)

Resets a filter to its default state.

Parameters:

  • instance_id: The instance ID of the filter to reset

set_state(view_url: str)

Loads a new view URL.

Parameters:

  • view_url: The URL of the view to load

open_bookmark_modal()

Opens the bookmark modal dialog.

open_export_modal()

Opens the export modal dialog.

Examples

Using Filter Callbacks

def on_filter_added():
    print("A filter was added")
    # Handle the filter addition event

widget = CleverMapsWidget(view_url="your-view-url")
widget.add_filter_callback = on_filter_added

Check out the example notebook in the repository:

  • sdk-test.ipynb: Advanced usage and testing examples

License

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

Author

Karel Psota (karel.psota@clevermaps.io)

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

cm_jupyter_widget-0.3.7.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

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

cm_jupyter_widget-0.3.7-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file cm_jupyter_widget-0.3.7.tar.gz.

File metadata

  • Download URL: cm_jupyter_widget-0.3.7.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.3

File hashes

Hashes for cm_jupyter_widget-0.3.7.tar.gz
Algorithm Hash digest
SHA256 252a9fec443fa3d970b8310fc5e07ac8e35a8ebd3273e68cad34bbb899f50c07
MD5 3bd41292c4c6ea285c00cda8b70f2b84
BLAKE2b-256 916932494db439890d51353eaa2e8c7b613f853bb88e5ae0a0fd679a33f54544

See more details on using hashes here.

File details

Details for the file cm_jupyter_widget-0.3.7-py3-none-any.whl.

File metadata

File hashes

Hashes for cm_jupyter_widget-0.3.7-py3-none-any.whl
Algorithm Hash digest
SHA256 6e8259858f19bcf466c9b985f419b232c30b941d4b31ea9925cdbe3197706c86
MD5 757ba68d597f3600c06c51470e5ed9c5
BLAKE2b-256 cb72713d2821f6425e8a9ae51b5e1e5807b790373810fd2274a3bf3b77176242

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