def test_parse_element_configuration_updater(): page = Page() page.new(''' Text: - [updater: {$: fn}] ''', inputs={'fn': lambda: None}) assert page._element_updater.threads
def main(): title = 'Awe Examples' page = Page(title, width=900) page.register(HighlightJS) page.new('h1').new_text(title) page.new_text('Examples page was created with awe.\n') collapse = page.new_collapse() for example in examples.examples_order: config = examples.exported_examples[example] this_dir = os.path.dirname(__file__) py_file = os.path.join(this_dir, '{}.py'.format(example)) md_file = os.path.join(this_dir, '{}.md'.format(example)) github_link = 'https://github.com/dankilman/awe/blob/master/examples/{}.py'.format( example) static_url = 'https://s3.amazonaws.com/awe-static-files/examples/{}.html'.format( example) image_url = 'https://s3.amazonaws.com/awe-static-files/examples/{}.{}'.format( example, config['extension']) panel = collapse.new_panel('examples/{}.py'.format(example), active=True) (panel.new('h2').s.new_link(github_link).new_inline( 'examples/{}.py'.format(example)).n.new_inline(' ').new_link( static_url).new_inline(' [static demo]').p) with open(md_file) as f: panel.new_markdown(f.read()) panel.new('img', props={'src': image_url}, style={'maxWidth': '100%'}) panel.new_divider() with open(py_file) as f: panel.new('pre').new('code').new_inline( f.read(), style={'borderRadius': '2px'}, props={'className': 'python'}, ) page.start(block=True)
def test_export_with_custom_element(): js_code = 'register((e) => <div {...e.props}>text</div>)' class TestElement(CustomElement): @classmethod def _js(cls): return js_code page = Page() page.new(TestElement) assert js_code in page.export()
def test_inputs(): page = Page() fn = lambda: None text1 = 'Text Input 1' text2 = 'Text Input 2' input3 = 'Input 3 Value' inputs = { 'fn1': fn, 'text1': text1, 'text2': text2, 'input3': input3 } layout = ''' - Button: [[button1, function: {$: fn1}]] - Text: {$: text1} - Inline: - [text2] - {$: text2} - Inline: - [text3] - {$: [text3, default: {$: input3}]} ''' top_level = page.new(layout, inputs=inputs) ref = top_level.ref assert top_level.children[1].text == text1 assert ref.button1._function is fn assert ref.text2.children[0].text == text2 assert ref.text3.children[0].text == input3
def test_parse_element_configuration_element_prop(): page = Page() result = page.new(''' Divider: - [prop1: Prop1 Value] ''') assert result.props['prop1'] == 'Prop1 Value'
def test_parse_element_configuration_init_arg(): page = Page() result = page.new(''' Text: - [text: Hello Text] ''') assert result.text == 'Hello Text'
def test_parse_element_configuration_id(): page = Page() result = page.new(''' Divider: - [id: divider1] ''') assert result.id == 'divider1'
def test_text_child(): page = Page() result = page.new(''' Card: - Card Text ''') assert result.children[0].text == 'Card Text'
def test_parse_children(): page = Page() result = page.new(['Divider', 'Text']) children = result.children assert len(children) == 2 divider, text = children assert isinstance(divider, view.Divider) assert isinstance(text, view.Text)
def test_parse_element_configuration_variable_and_more(): page = Page() result = page.new(''' Divider: - [divider_var1, id: divider1] ''') assert result.ref.divider_var1 is result assert result.id == 'divider1'
def test_parse_element_configuration_cols(): page = Page() result = page.new(''' Grid: - [columns: 3] - Text: [[cols: 2]] ''') assert result.data['childColumns'] == [2]
def test_parse_element_configuration_element_value(): page = Page() result = page.new(''' Divider: - [prop1: {_: {Divider: [[inner_divider]]}}] ''') assert isinstance(result.ref.inner_divider, view.Divider) assert result._prop_children['prop1'] == result.ref.inner_divider.root_id
def test_parse_inline_text(): page = Page() result = page.new('span: Hello There') assert isinstance(result, view.Raw) assert len(result.children) == 1 child = result.children[0] assert isinstance(child, view.Inline) assert child.text == 'Hello There'
def main(): page = Page() popover = page.new(Popover, title='Some Title') popover.new_button(lambda: None, 'Hover Me!') content = popover.new_prop('content') content.new_text('line 1') content.new(Moment) page.start(block=True)
def test_parser_yaml_string_input(): page = Page() result = page.new(''' - Divider - span: hello ''') assert isinstance(result, view.Raw) assert result.data['tag'] == 'div' assert len(result.children) == 2
def test_parse_element_configuration_element_value_init_arg(): page = Page() result = page.new(''' Collapse: - Panel: [[panel1, header: {_: {Text: Text 1}}]] ''') panel1 = result.ref.panel1 assert panel1._prop_children assert panel1.header.children[0].text == 'Text 1'
def test_parse_custom_element(): class TestElement(view.CustomElement): @classmethod def _js(cls): pass page = Page() page.register(TestElement) result = page.new('TestElement') assert isinstance(result, TestElement)
def main(): page = Page() b = page.element_builder page.new('h1').new_text('Simple Report') page.new_text('''Things weren't always so good for Foxy Fox. There were days when Fox had to do {thing}, which was hard and not very satisfying. '''.format(thing='documentation')) page.new('div').s.new_inline('But things are ').n.new('em').new_inline( 'better').n.new_inline(' now.') page.new_text() table = page.new_table(['Day', 'Number Of Emotions']) for i in range(5): number = random.randint(0, 1000) url = 'https://www.google.com/search?q={}'.format(number) table.append([ 'Day {}'.format(i), b.link(url).s.new('em').new_inline( str(number)).n.new_inline(' Emotions') ]) page.start(block=True)
def test_parse_element_configuration_variables(): page = Page() result = page.new(''' - Divider: - [divider1] - span: - [span1] - Inline: Hello There ''') assert isinstance(result.ref.divider1, view.Divider) assert isinstance(result.ref.span1, view.Raw)
def start(ctx, title, width, open_browser, obj, params, style, host, port, websocket_port): """ Start a new page. """ try: page = Page(title=title, width=width, host=host, port=port, websocket_port=websocket_port, style=ctx.parse_object(style)) page.start(open_browser=open_browser) if obj: obj = ctx.parse_object(obj) params = ctx.parse_object(params) page.new(obj, **params) page.block() except Exception: if ctx.quiet: sys.exit(1) else: raise
def test_parse_element_configuration_and_children(): page = Page() result = page.new(''' Card: - [id: card1] - Text - Inline ''') assert result.id == 'card1' children = result.children assert len(children) == 2 text, inline = children assert isinstance(text, view.Text) assert isinstance(inline, view.Inline)
def run(): page = Page() content = page.new(page_layout) ref = content.ref page.start() for i in range(1000): ref.table1.append([i, i**2, i**3]) ref.table2.prepend([-i, -i * 12]) ref.table3.append([-i, -i**2, -i**3]) ref.table4.append([i, i * 12]) ref.text1.text = '4 Text: {}'.format(i * 3) ref.text2.text = '4 Text {}'.format(i * 4) ref.card1.children[0].text = '{} Time: {}'.format(i, time.time()) ref.divider1.update_prop('dashed', not ref.divider1.props.get('dashed')) time.sleep(5)
def test_parse_raw_element_dict_text_value(): page = Page() result = page.new('span: Hello There') assert len(result.children) == 1 assert isinstance(result.children[0], view.Inline) assert result.children[0].text == 'Hello There'
def test_parser_list_input(): page = Page() result = page.new(['Divider', {'span': 'hello'}]) assert isinstance(result, view.Raw) assert result.data['tag'] == 'div' assert len(result.children) == 2
def test_parser_object_input(): page = Page() result = page.new({'Divider': None}) assert isinstance(result, view.Divider)
def test_parser_string_input(): page = Page() result = page.new('Divider') assert isinstance(result, view.Divider)
def test_parse_first_init_arg_as_dict_value(): page = Page() result = page.new('Text: Hello There') assert result.text == 'Hello There'
def test_chart(): page = Page() c = page.new('Chart') assert isinstance(c, chart.Chart)