wg-backend-django/dell-env/lib/python3.11/site-packages/dash_cytoscape/__init__.py
2023-10-30 14:40:43 +07:00

123 lines
3.4 KiB
Python

from __future__ import print_function as _
import os as _os
import sys as _sys
import json
import dash as _dash
# noinspection PyUnresolvedReferences
from ._imports_ import *
from ._imports_ import __all__
from . import utils
if not hasattr(_dash, '__plotly_dash') and not hasattr(_dash, 'development'):
print('Dash was not successfully imported. '
'Make sure you don\'t have a file '
'named \n"dash.py" in your current directory.', file=_sys.stderr)
_sys.exit(1)
_basepath = _os.path.dirname(__file__)
_filepath = _os.path.abspath(_os.path.join(_basepath, 'package.json'))
with open(_filepath) as f:
package = json.load(f)
package_name = package['name'].replace(' ', '_').replace('-', '_')
__version__ = package['version']
_current_path = _os.path.dirname(_os.path.abspath(__file__))
_this_module = _sys.modules[__name__]
_js_dist = [
{
'relative_package_path': 'dash_cytoscape.min.js',
'dev_package_path': 'dash_cytoscape.dev.js',
'external_url': 'https://unpkg.com/dash-cytoscape@{2}/{1}/{1}.min.js'.format(
package_name, __name__, __version__),
'namespace': package_name
}
]
_css_dist = []
for _component in __all__:
setattr(locals()[_component], '_js_dist', _js_dist)
setattr(locals()[_component], '_css_dist', _css_dist)
def load_extra_layouts():
"""
Load 3rd party layouts that are not included by default with Cytoscape. You can find the
documentation about those layouts here:
- `cose-bilkent`: https://github.com/cytoscape/cytoscape.js-cose-bilkent
- `cola`: https://github.com/cytoscape/cytoscape.js-cola
- `euler`: https://github.com/cytoscape/cytoscape.js-dagre
- `spread`: https://github.com/cytoscape/cytoscape.js-spread
- `dagre`: https://github.com/cytoscape/cytoscape.js-dagre
- `klay`: https://github.com/cytoscape/cytoscape.js-klay
Example:
```
import dash
import dash_html_components as html
import dash_cytoscape as cyto
cyto.load_extra_layouts()
app = dash.Dash(__name__)
app.layout = html.Div([
cyto.Cytoscape(...),
])
```
Be careful about using the extra layouts when not necessary, since they require supplementary
bandwidth for loading, which impacts the startup time of the app.
"""
global _js_dist
_js_dist = [
{
'relative_package_path': 'dash_cytoscape_extra.min.js',
'dev_package_path': 'dash_cytoscape_extra.dev.js',
'external_url': 'https://unpkg.com/dash-cytoscape@{}/{}/{}.min.js'.format(
__version__, __name__, 'dash_cytoscape_extra'
),
'namespace': package_name
}
]
def _display_default_values():
out_string = ""
metadata_path = _os.path.join(
_os.path.dirname(_os.path.realpath(__file__)),
'metadata.json'
)
with open(metadata_path, 'r') as file:
data = json.loads(file.read())
for component in data:
component_name = component.replace('src/lib/components/', '').replace('.react.js', '')
metadata = data[component]
props = metadata['props']
out_string += "## {} Default Values\n\n".format(component_name)
for prop_name in props:
prop = props[prop_name]
if 'defaultValue' in prop:
default = prop['defaultValue']['value']
out_string += "* *{}*: {}\n".format(prop_name, default)
return out_string