示例#1
0
def test_plotly(remove_build):
    """Tests plotly."""
    viz = Plotly()
    ctrl = Nouislider()
    ctrl2 = Button()

    path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'build')
    layout = Layout(directory=path)
    layout.add(viz)
    layout.add_sidebar(ctrl)
    layout.add_sidebar(ctrl2)
    layout.subscribe(callback, ctrl.on_change)
    layout.subscribe(callback, ctrl2.on_click)
    layout.build()

    env = os.environ
    env['PYTHONPATH'] = '{}:{}'.format(os.getcwd(),
                                       os.environ.get('PYTHONPATH', ''))
    server = subprocess.Popen(os.path.join(path, 'src/server.py'), env=env)
    time.sleep(5)

    driver = PhantomJS()
    driver.get('http://localhost:9991')

    assert driver.title == 'Bowtie App'

    server.kill()
示例#2
0
def test_build(remove_build):
    ctrl = Nouislider()
    viz = Plotly()

    layout = Layout()
    layout.add_controller(ctrl)
    layout.add_visual(viz)
    layout.subscribe(ctrl.on_change, callback)
    layout.build()
示例#3
0
def test_build(remove_build):
    """Tests the build process."""
    ctrl = Nouislider()
    viz = Plotly()

    path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'build')
    layout = Layout(directory=path)
    layout.add_sidebar(ctrl)
    layout.add(viz)
    layout.subscribe(callback, ctrl.on_change)
    layout.build()
示例#4
0
def test_build(build_path):
    """Tests the build process."""
    reset_uuid()
    ctrl = Nouislider()
    viz = Plotly()

    app = App(directory=build_path)
    app.add_sidebar(ctrl)
    app.add(viz)
    app.subscribe(callback, ctrl.on_change)
    app.build()
示例#5
0
def test_build(build_path):
    """Tests the build process."""
    reset_uuid()
    ctrl = Nouislider()
    viz = Plotly()

    layout = Layout(directory=build_path)
    layout.add_sidebar(ctrl)
    layout.add(viz)
    layout.subscribe(callback, ctrl.on_change)
    layout.build()
示例#6
0
def test_build(build_reset, monkeypatch):
    """Tests the build process."""
    reset_uuid()
    ctrl = Nouislider()
    viz = Plotly()

    app = App(__name__, sidebar=True)
    app.add_sidebar(ctrl)
    app.add(viz)
    app.subscribe(ctrl.on_change)(callback)
    # pylint: disable=protected-access
    app._build()
示例#7
0
def test_build(build_path, monkeypatch):
    """Tests the build process."""
    monkeypatch.setattr(App, '_sourcefile',
                        lambda self: 'bowtie.tests.test_compile')
    reset_uuid()
    ctrl = Nouislider()
    viz = Plotly()

    app = App()
    app.add_sidebar(ctrl)
    app.add(viz)
    app.subscribe(callback, ctrl.on_change)
    # pylint: disable=protected-access
    app._build()
示例#8
0
#!/usr/bin/env python
"""Example Bowtie App."""

from bowtie import App
from bowtie.control import Nouislider
from bowtie.visual import Plotly
from bowtie import Pager, cache, command

import numpy as np
from numpy import random as rng
import plotlywrapper as pw

app = App(debug=True, sidebar=True)
pager = Pager()
sigma = Nouislider(start=0., minimum=0.1, maximum=50.)
mainplot = Plotly()

app.add_sidebar(sigma)
app.add(mainplot)


def initialize():
    cache.save('data', [0.] * 100)


@app.subscribe(pager)
def upgraph():
    data = cache.load('data')
    value = float(sigma.get())
    data.pop(0)
    data.append(value * rng.randn() + data[-1])
示例#9
0
'''
The only working example in bowtie so far. ¯\(°_o)/¯
python 2.7
bowtie==0.3.2
'''
from bowtie.visual import Plotly
from bowtie.control import Nouislider
import numpy as np
import plotlywrapper as pw

sine_plot = Plotly()
freq_slider = Nouislider(caption='frequency', minimum=1, maximum=10, start=5)


def listener(freq):
    freq = float(freq[0])
    t = np.linspace(0, 10, 100)
    sine_plot.do_all(pw.line(t, np.sin(freq * t)).to_json())


from bowtie import command


@command
def construct(path):
    from bowtie import Layout
    layout = Layout(directory=path)
    layout.add_sidebar(freq_slider)
    layout.add(sine_plot)
    layout.subscribe(listener, freq_slider.on_change)
    layout.build()
示例#10
0
import time

import pytest
from plotly.graph_objs import Scatter
from plotly.graph_objs import Layout as PlotLayout

from bowtie import App
from bowtie.control import Nouislider, Button
from bowtie.visual import Plotly
from bowtie.tests.utils import reset_uuid

reset_uuid()

# pylint: disable=invalid-name
viz = Plotly()
ctrl = Nouislider()
ctrl2 = Button()


def callback(*args):
    """dummy function"""
    # pylint: disable=unused-argument
    chart = {
        "data": [Scatter(x=[1, 2, 3, 4], y=[4, 1, 3, 7])],
        "app": PlotLayout(title="hello world")
    }
    viz.do_all(chart)


# pylint: disable=unused-argument
@pytest.fixture
示例#11
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Example Bowtie App.
"""

from bowtie.control import Nouislider
from bowtie.visual import Plotly
from bowtie import command

import numpy as np
from numpy import random as rng
import plotlywrapper as pw

sigma = Nouislider(caption='Sigma', start=1, minimum=0.1, maximum=50)
mainplot = Plotly()

data = np.zeros(100).tolist()


def walk():
    value = float(sigma.get())
    data.pop(0)
    data.append(value * rng.randn() + data[-1])
    mainplot.do_all(pw.line(data).to_json())


@command
def main():
    from bowtie import App
    app = App(debug=True)
示例#12
0
import subprocess
import time

import pytest
from plotly import graph_objs as go

from bowtie import App
from bowtie.control import Nouislider, Button
from bowtie.visual import Plotly
from bowtie.tests.utils import reset_uuid


reset_uuid()

viz = Plotly()
ctrl = Nouislider()
ctrl_range = Nouislider(start=(20, 200))
ctrl2 = Button()


def callback(*args):
    """dummy function"""
    chart = go.Figure()
    chart.add_trace(go.Scatter(x=[1, 2, 3, 4], y=[4, 1, 3, 7]))
    chart.layout.title = 'hello world'
    viz.do_all(chart.to_dict())


@pytest.fixture
def plotly(build_path, monkeypatch):
    """Create plotly app."""
示例#13
0
from bowtie.visual import Plotly
from bowtie.control import Nouislider, Upload, Dropdown, Slider
from Analyzer.ResultAnalizer import ResultAnalyzer

sine_plot = Plotly()
freq_slider = Nouislider(caption='Aggregation time, ms',
                         minimum=50,
                         maximum=2000,
                         start=500)
upload = Upload(multiple=False, caption='Upload csv to analyze')
dropdown_src = Dropdown(caption='src_ips', labels=[''], values=[''])
dropdown_dst = Dropdown(caption='dst_ips', labels=[''], values=[''])
scale_factor_input = Nouislider(caption='Scaling factor',
                                start=1,
                                minimum=0,
                                maximum=1)

result_analyzer = ResultAnalyzer()
src_ips = []
dst_ips = []
initialized = False


def upload_listener(name, file):
    result_analyzer.read_df(file)


def update_scale_factor(scale_factor):
    scale_factor = float(scale_factor[0])
    result_analyzer.scale_factor_ = scale_factor