Python object for dash-cytoscape elements
Project description
dash-cytoscape-elements
This is a Python object for Dash Cytoscape Elements.
Features
- Add/Remove/Get/Filter Element(Node/Edge) on Python object.
- Convert Python object from/to Dash Cytoscape format
- Convert Python object from/to json(Cytoscape.js format)
Install
pip install dash-cytoscape-elements
Usage
Example1
Create Elements object & using on Dash Cytoscape
import dash
import dash_cytoscape as cyto
from dash import html
from dash_cytoscape_elements import Elements
e = Elements()
e.add(id="one", label="Node 1", x=50, y=50)
e.add(id="two", label="Node 2", x=200, y=200)
e.add(source="one", target="two", label="Node 1 to 2")
app = dash.Dash(__name__)
app.layout = html.Div([
cyto.Cytoscape(
id='cytoscape',
elements=e.to_dash(),
layout={'name': 'preset'}
)
])
if __name__ == '__main__':
app.run_server(debug=True)
Example2
Edit json file of Elements.
from dash_cytoscape_elements import Elements
e = Elements.from_file("elements.json")
e.remove(id="node2")
e.remove(source="node1", target="node2")
with open("elements.json", mode='w') as f:
f.write(e.to_json())
Supported Parameters
This package supports the following parameters of Dash Cytoscape Element.
| Parameter | Type | Element |
|---|---|---|
| id | str | Node, Edge |
| parent | str | Node |
| source | str | Edge |
| target | str | Edge |
| label | str | Node, Edge |
| source_label | str | Edge |
| target_label | str | Edge |
| x | float | Node |
| y | float | Node |
| classes | str | Node, Edge |
| selected | str | Node, Edge |
| selectable | str | Node, Edge |
| locked | str | Node, Edge |
| grabbable | str | Node, Edge |
| pannable | str | Node, Edge |
| scratch | dict | Node, Edge |
example output:
>>> e = Elements()
>>> e.add(id="node1", parent="parent1", label="node_label1", x=1, y=1, classes="class1")
>>> e.add(source="node1", target="node2", label="edge_label1", source_label="source_label1", target_label="target_label1", classes="class1")
>>> print(e.to_json())
[
{
"group": "nodes",
"classes": "class1",
"data": {
"id": "node1",
"parent": "parent1",
"label": "node_label1"
},
"position": {
"x": 1.0,
"y": 1.0
}
},
{
"group": "edges",
"classes": "class1",
"data": {
"id": "49082bcd-dcbb-4db7-b369-29e3bf8f74e2",
"source": "node1",
"target": "node2",
"label": "edge_label1",
"source-label": "source_label1",
"target-label": "target_label1"
}
}
]
How to add your own parameters:
from typing import List, Set
from dash_cytoscape_elements import GenericElements
from dash_cytoscape_elements.element import Edge, EdgeData, Node, NodeData
class CustomNodeData(NodeData):
custom_str1: str = ""
class CustomNode(Node):
data: CustomNodeData = CustomNodeData()
custom_str2: str = ""
custom_list: List[str] = []
class CustomEdgeData(EdgeData):
custom_str1: str = ""
class CustomEdge(Edge):
data: CustomEdgeData = CustomEdgeData()
custom_str2: str = ""
custom_set: Set[str] = set()
e = GenericElements[CustomNode, CustomEdge]()
e.add(id="node1", custom_str1="str1", custom_str2="str2", custom_list=["list1", "list2"])
e.add(id="edge1", source="node1", target="node2", custom_str1="str1", custom_str2="str2", custom_set={"set1", "set2"})
print(e.to_json())
# [
# {
# "group": "nodes",
# "data": {
# "id": "node1",
# "custom_str1": "str1"
# },
# "custom_str2": "str2",
# "custom_list": [
# "list1",
# "list2"
# ]
# },
# {
# "group": "edges",
# "data": {
# "id": "edge1",
# "source": "node1",
# "target": "node2",
# "custom_str1": "str1"
# },
# "custom_str2": "str2",
# "custom_set": [
# "set1",
# "set2"
# ]
# }
# ]
Please see the Documentation 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dash-cytoscape-elements-0.0.4.tar.gz.
File metadata
- Download URL: dash-cytoscape-elements-0.0.4.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.7.12 Darwin/22.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
706d23a9009f47c9b083d309c38cca74d77d43938db27c20de72d5de6da86048
|
|
| MD5 |
f3d58990d8c3b70cb62575000e3325f9
|
|
| BLAKE2b-256 |
fa2657dd13598ca3c5e12bba0db746be393895cf84fad6177abac75a1fb05c35
|
File details
Details for the file dash_cytoscape_elements-0.0.4-py3-none-any.whl.
File metadata
- Download URL: dash_cytoscape_elements-0.0.4-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.7.12 Darwin/22.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
738d51f36ce84ce830114f19e13c78cf1b91d532150ed1c9ea72243129003c0d
|
|
| MD5 |
8e6ea62dedca644697e26bd2b93d4779
|
|
| BLAKE2b-256 |
18512a899b22454f6309f4f0f8715537dd3e9e97c03af0fe0b9de39d5be53343
|