示例#1
0
def draw_contact_bigButton():
    panel = document["main_panel"]

    p = html.P("Send an email to GeneXpresso:")
    p.style.textAlign = "center"
    p.style.fontSize = "large"
    p.style.font = "20px verdana"
    p.style.textAlign = "center"

    panel <= html.BR()
    panel <= html.BR()
    panel <= html.BR()
    panel <= html.BR()

    #panel <= p

    form = html.FORM()
    form.style.fontSize = "large"
    form.style.font = "20px verdana"
    form.action = "mailto:[email protected]"
    form.method = "POST"
    form.style.textAlign = "center"

    global buttonSendEmail
    buttonSendEmail = html.INPUT()
    buttonSendEmail.type = "submit"
    buttonSendEmail.value = "Send"
    button_style_default(buttonSendEmail)
    buttonSendEmail.bind('mouseout', mouse_out_send_email)
    buttonSendEmail.bind('mouseover', mouse_over_send_email)

    form <= buttonSendEmail
    panel <= form
示例#2
0
                 html.TH('最大CP') + html.TH('屬性'))
lines = [
    [1, '妙蛙種子', '1115', '草、毒'],
    [2, '妙蛙草', '1699', '草、毒'],
    [3, '妙蛙花', '2720', '草、毒'],
    [4, '小火龍', '980', '火'],
]
for line in lines:
    table <= html.TR(
        html.TD(line[0]) + html.TD(line[1]) + html.TD(line[2]) + html.TD(line[3]))
container <= table

# 寶貝圖鑑輸入表
container <= html.DIV(html.H2('寶貝圖鑑輸入表'),
                      Class="w3-container w3-blue  w3-margin-top")
form = html.FORM(Class="w3-container w3-border")
form <= html.DIV(
    html.LABEL('中文名') +
    html.INPUT(type="text", name="firstname", value="", Class="w3-input"))
form <= html.DIV(
    html.LABEL('最大CP') +
    html.INPUT(type="number", name="最大CP", value="", Class="w3-input"))
label3 = html.LABEL('屬性')
input3 = html.SELECT(Class="w3-select")
for option in ['...', '草、毒', '火', '水']:
    input3 <= html.OPTION(option)
form <= html.DIV(label3 + input3)
form <= html.P(html.BUTTON("上傳", Class="w3-button w3-red"))
container <= form

def submit_model(evt):
    """
  run model
  """

    global results_counter

    widgets = [
        'population', 'family_income_target_final', 'TSI', 'unemployment_rate',
        'workforce_partition_SB', 'workforce_partition_NP',
        'workforce_partition_PB', 'earmark_SB_subsidy', 'earmark_PB_subsidy',
        'earmark_NP_donation', 'earmark_nurture', 'earmark_SB_subsidy_TS',
        'earmark_PB_subsidy_TS', 'earmark_NP_donation_TS',
        'earmark_nurture_TS', 'person_member_spending_to_member_SB_pct',
        'person_member_spending_to_member_SB_TS',
        'person_member_spending_to_member_NP_pct',
        'person_member_spending_to_member_NP_TS',
        'person_member_spending_to_member_PB_pct',
        'person_member_spending_to_member_PB_TS',
        'person_member_spending_to_nonmember_SB_pct',
        'person_member_spending_to_nonmember_NP_pct',
        'person_nonmember_spending_to_member_SB_pct',
        'person_nonmember_spending_to_member_NP_pct',
        'person_nonmember_spending_to_member_PB_pct',
        'person_nonmember_spending_to_nonmember_SB_pct',
        'person_nonmember_spending_to_nonmember_NP_pct',
        'flexible_earmark_SB_subsidy', 'flexible_earmark_PB_subsidy',
        'flexible_earmark_NP_donation', 'flexible_earmark_nurture',
        'flexible_earmark_SB_subsidy_TS', 'flexible_earmark_PB_subsidy_TS',
        'flexible_earmark_NP_donation_TS', 'flexible_earmark_nurture_TS',
        'flexible_person_member_spending_to_member_SB_pct',
        'flexible_person_member_spending_to_member_SB_TS',
        'flexible_person_member_spending_to_member_NP_pct',
        'flexible_person_member_spending_to_member_NP_TS',
        'flexible_person_member_spending_to_member_PB_pct',
        'flexible_person_member_spending_to_member_PB_TS',
        'flexible_person_member_spending_to_nonmember_SB_pct',
        'flexible_person_member_spending_to_nonmember_NP_pct',
        'flexible_person_nonmember_spending_to_member_SB_pct',
        'flexible_person_nonmember_spending_to_member_NP_pct',
        'flexible_person_nonmember_spending_to_member_PB_pct',
        'flexible_person_nonmember_spending_to_nonmember_SB_pct',
        'flexible_person_nonmember_spending_to_nonmember_NP_pct',
        'earmarks_TS_lb', 'earmarks_TS_ub', 'spending_TS_lb', 'spending_TS_ub',
        'doBFGS', 'doGenetic', 'doRandomStart'
    ]

    data = {}

    # set upper and lower bounds if widgits are empty
    for w in ['earmarks_TS_lb', 'spending_TS_lb']:
        if document[w].value.strip() == '':
            document[w].value = '0'
    for w in ['earmarks_TS_ub', 'spending_TS_ub']:
        if document[w].value.strip() == '':
            document[w].value = '100'

    # set check boxes to 0/1, and otherwise get values for widgits
    for w in widgets:
        if (w[0:9] in ['flexible_'
                       ]) or (w in ['doGenetic', 'doBFGS', 'doRandomStart']):
            data[w] = document[w].checked
        else:
            data[w] = document[w].value

    # create form to post data
    document['hidden_form'].html = ""
    keys = data.keys()
    method = "post"
    form = html.FORM(method='post', action='/runModel', target="_blank")
    for k in keys:
        ele = html.INPUT(type="hidden", name=k, value=data[k])
        form <= ele

    document['hidden_form'] <= form

    form.submit()
def show_contact(evt):
    """
  Show the contact form
  """
    if len(document['contact_container'].text) > 0:
        document['contact_container'].html = ""
        return

    form = html.FORM(id="contact_form", method='post', action='/contact_form')

    div = html.DIV()
    div <= html.BR() + html.BR()

    label = html.LABEL()
    span = html.SPAN()
    span.text = "Name (required): "
    widget = html.INPUT(id="name",
                        placeholder="Name",
                        type="text",
                        tabindex="1",
                        required=True,
                        autofocus=True)
    label <= span + html.BR() + widget
    div <= label
    form <= div

    div = html.DIV()
    label = html.LABEL()
    span = html.SPAN()
    span.text = "Email (required): "
    widget = html.INPUT(id="email",
                        placeholder="Email address",
                        type="email",
                        tabindex="2",
                        size="30",
                        required=True)
    label <= span + html.BR() + widget
    div <= label
    form <= div

    div = html.DIV()
    label = html.LABEL()
    span = html.SPAN()
    span.text = "Other (if you type anything in this box your message will be trashed): "
    widget = html.INPUT(id="other",
                        placeholder="Don't do it.",
                        type="text",
                        tabindex="3",
                        required=True)
    label <= span + html.BR() + widget
    div <= label
    form <= div

    div = html.DIV()
    label = html.LABEL()
    span = html.SPAN()
    span.text = "Are you a human? If so, how many legs does a dog have? "
    widget = html.INPUT(id="magic",
                        placeholder="How many?",
                        type="text",
                        tabindex="4",
                        size="9",
                        required=True)
    label <= span + html.BR() + widget
    div <= label
    form <= div

    div = html.DIV()
    label = html.LABEL()
    span = html.SPAN()
    span.text = "Message: "
    widget = html.TEXTAREA(id="message",
                           placeholder="Type your message",
                           tabindex="5",
                           cols="60",
                           required=True)
    label <= span + html.BR() + widget
    div <= label
    form <= div

    div = html.DIV()
    button = html.BUTTON(type="button", id="contact_submit")
    button.text = "Submit Message"
    div <= button
    form <= div

    document['contact_container'] <= form
    document['contact_submit'].bind('click', submit_contact)
    window.scrollBy(0, 50)
示例#5
0
newdiv.style = {"padding": "5px", "backgroundColor": "#ADD8E6"}

# Now, lets add a table with a column with numbers and a
# column with a word on each cell
text = "Brython is really cool"
textlist = text.split()
table = html.TABLE()
for i, word in enumerate(textlist):
    table <= html.TR(html.TD(i + 1) + html.TD(word))
# Now we add some style to the table
table.style = {"padding": "5px", "backgroundColor": "#aaaaaa", "width": "100%"}
# Now we add the table to the new div previously created
newdiv <= table + html.BR()

# a form? why not?
form = html.FORM()
input1 = html.INPUT(type="text", name="firstname", value="First name")
input2 = html.INPUT(type="text", name="lastname", value="Last name")
input3 = html.BUTTON("Button with no action!")
form <= input1 + html.BR() + input2 + html.BR() + input3

newdiv <= form + html.BR()

# Finally, we will add something more 'HTML5istic', a canvas with
# a color gradient in the newdiv previously created and below the form
canvas = html.CANVAS(width=300, height=300)
canvas.style = {"width": "100%"}
ctx = canvas.getContext('2d')
ctx.rect(0, 0, 300, 300)
grd = ctx.createRadialGradient(150, 150, 10, 150, 150, 150)
grd.addColorStop(0, '#8ED6FF')
示例#6
0
def test_browser_html():
    # First of all, the import of some libraries
    from browser import document
    from browser import html

    # All the elements will be inserted in the div with the "container" id
    container = document['container']

    # We create a new div element
    newdiv = html.DIV(id="new-div")
    # Now we add some style
    newdiv.style = {"padding": "5px", "backgroundColor": "#ADD8E6"}

    # Now, lets add a table with a column with numbers and a
    # column with a word on each cell
    text = "Brython is really cool"
    textlist = text.split()
    table = html.TABLE()
    for i, word in enumerate(textlist):
        table <= html.TR(html.TD(i + 1) + html.TD(word))
    # Now we add some style to the table
    table.style = {
        "padding": "5px",
        "backgroundColor": "#aaaaaa",
        "width": "100%"
    }
    # Now we add the table to the new div previously created
    newdiv <= table + html.BR()

    # a form? why not?
    form = html.FORM()
    input1 = html.INPUT(type="text", name="firstname", value="First name")
    input2 = html.INPUT(type="text", name="lastname", value="Last name")
    input3 = html.BUTTON("Button with no action!")
    form <= input1 + html.BR() + input2 + html.BR() + input3

    newdiv <= form + html.BR()

    # Finally, we will add something more 'HTML5istic', a canvas with
    # a color gradient in the newdiv previously created and below the form
    canvas = html.CANVAS(width=300, height=300)
    canvas.style = {"width": "100%"}
    ctx = canvas.getContext('2d')
    ctx.rect(0, 0, 300, 300)
    grd = ctx.createRadialGradient(150, 150, 10, 150, 150, 150)
    grd.addColorStop(0, '#8ED6FF')
    grd.addColorStop(1, '#004CB3')
    ctx.fillStyle = grd
    ctx.fill()

    newdiv <= canvas

    # And finally we append the newdiv element
    # to the parent, in this case the div with the "container" id
    container <= newdiv
    """ browser.local_storage """

    from browser.local_storage import storage
    storage['foo'] = 'bar'
    print(storage['foo'])

    del storage['foo']
    with pytest.raises(KeyError):

        print(storage['foo'])  # raises KeyError ## added exception handler
示例#7
0
def submit_model(evt):
    """
  run model
  """

    global results_counter
    elem = document['scenario']
    scenario = [opt.value for opt in elem.options if opt.selected == True][0]

    # from successful fun, fit=60
    data_01 = {
        'workforce_partition_SB': [33],
        'workforce_partition_NP': [34],
        'workforce_partition_PB': [33],
        'TSI': [35],
        'family_income_target_final': [110000],
        'population': [10000],
        'unemployment_rate': [5],
        'earmark_NP_donation': [5.114815312442174],
        'earmark_NP_donation_TS': [58.939234386483776],
        'earmark_PB_subsidy': [8.899206723284683],
        'earmark_PB_subsidy_TS': [53.163211852380456],
        'earmark_SB_subsidy': [8.51445110839744],
        'earmark_SB_subsidy_TS': [42.10429226478416],
        'earmark_nurture': [36.339790526860824],
        'earmark_nurture_TS': [36.439476630262504],
        'person_member_spending_to_member_NP_TS': [64.42464795292429],
        'person_member_spending_to_member_NP_pct': [23.505064474876036],
        'person_member_spending_to_member_PB_TS': [30.669838242642715],
        'person_member_spending_to_member_PB_pct': [27.55634331961967],
        'person_member_spending_to_member_SB_TS': [38.103915020305585],
        'person_member_spending_to_member_SB_pct': [32.604851195547866],
        'person_member_spending_to_nonmember_NP_pct': [0.5214587471568934],
        'person_member_spending_to_nonmember_SB_pct': [15.812282274675196],
        'person_nonmember_spending_to_member_NP_pct': [9.31615100786286],
        'person_nonmember_spending_to_member_PB_pct': [37.16891914950032],
        'person_nonmember_spending_to_member_SB_pct': [20.619519215802725],
        'person_nonmember_spending_to_nonmember_NP_pct': [23.946729130924936],
        'person_nonmember_spending_to_nonmember_SB_pct': [8.948681495909167],
        'CBFS_spending_ratio': [40]
    }

    data_02 = {
        'workforce_partition_SB': [33],
        'workforce_partition_NP': [34],
        'workforce_partition_PB': [33],
        'TSI': [35],
        'family_income_target_final': [110000],
        'population': [10000],
        'unemployment_rate': [5],
        'earmark_NP_donation': [8.644500319160668],
        'earmark_NP_donation_TS': [55.88660802799319],
        'earmark_PB_subsidy': [11.826420774518366],
        'earmark_PB_subsidy_TS': [48.02541415773954],
        'earmark_SB_subsidy': [12.696246181318719],
        'earmark_SB_subsidy_TS': [38.17651051378081],
        'earmark_nurture': [36.740916221721456],
        'earmark_nurture_TS': [36.04162220721133],
        'person_member_spending_to_member_NP_TS': [63.21892370652468],
        'person_member_spending_to_member_NP_pct': [21.87129068105028],
        'person_member_spending_to_member_PB_TS': [28.125704507011594],
        'person_member_spending_to_member_PB_pct': [28.685788956242465],
        'person_member_spending_to_member_SB_TS': [37.72741674077401],
        'person_member_spending_to_member_SB_pct': [33.326018279227966],
        'person_member_spending_to_nonmember_NP_pct': [0.6742319206138517],
        'person_member_spending_to_nonmember_SB_pct': [15.442610131504908],
        'person_nonmember_spending_to_member_NP_pct': [9.31615100786286],
        'person_nonmember_spending_to_member_PB_pct': [37.16891914950032],
        'person_nonmember_spending_to_member_SB_pct': [20.619519215802725],
        'person_nonmember_spending_to_nonmember_NP_pct': [23.946729130924936],
        'person_nonmember_spending_to_nonmember_SB_pct': [8.948681495909167],
        'CBFS_spending_ratio': [60]
    }

    data_03 = {
        'workforce_partition_SB': [12],
        'workforce_partition_NP': [70],
        'workforce_partition_PB': [18],
        'TSI': [35],
        'family_income_target_final': [110000],
        'population': [10000],
        'unemployment_rate': [5],
        'earmark_NP_donation': [31.444121377803235],
        'earmark_NP_donation_TS': [36.861424591974824],
        'earmark_PB_subsidy': [6.563161196207168],
        'earmark_PB_subsidy_TS': [45.794137921181914],
        'earmark_SB_subsidy': [2.878362271328804],
        'earmark_SB_subsidy_TS': [46.08915867561319],
        'earmark_nurture': [37.03198710972938],
        'earmark_nurture_TS': [35.758370560381316],
        'person_member_spending_to_member_NP_TS': [58.5754588219535],
        'person_member_spending_to_member_NP_pct': [41.64559556445119],
        'person_member_spending_to_member_PB_TS': [30.49837652360747],
        'person_member_spending_to_member_PB_pct': [20.00977132048462],
        'person_member_spending_to_member_SB_TS': [37.992360096672066],
        'person_member_spending_to_member_SB_pct': [22.651236070566835],
        'person_member_spending_to_nonmember_NP_pct': [0.26797928981835045],
        'person_member_spending_to_nonmember_SB_pct': [15.425513618400476],
        'person_nonmember_spending_to_member_NP_pct': [9.31615100786286],
        'person_nonmember_spending_to_member_PB_pct': [37.16891914950032],
        'person_nonmember_spending_to_member_SB_pct': [20.619519215802725],
        'person_nonmember_spending_to_nonmember_NP_pct': [23.946729130924936],
        'person_nonmember_spending_to_nonmember_SB_pct': [8.948681495909167],
        'CBFS_spending_ratio': [70]
    }

    data_04 = {
        'workforce_partition_SB': [12],
        'workforce_partition_NP': [70],
        'workforce_partition_PB': [18],
        'TSI': [35],
        'family_income_target_final': [110000],
        'population': [100000],
        'unemployment_rate': [5],
        'earmark_NP_donation': [31.443822806024002],
        'earmark_NP_donation_TS': [36.861381377187826],
        'earmark_PB_subsidy': [6.564268184025609],
        'earmark_PB_subsidy_TS': [45.79425475782429],
        'earmark_SB_subsidy': [2.8785491321809564],
        'earmark_SB_subsidy_TS': [46.08910397191154],
        'earmark_nurture': [37.03037421999677],
        'earmark_nurture_TS': [35.75840787354483],
        'person_member_spending_to_member_NP_TS': [58.575197309863356],
        'person_member_spending_to_member_NP_pct': [41.64537166504013],
        'person_member_spending_to_member_PB_TS': [30.498782117143026],
        'person_member_spending_to_member_PB_pct': [20.00984497040647],
        'person_member_spending_to_member_SB_TS': [37.99227586201974],
        'person_member_spending_to_member_SB_pct': [22.65120553757495],
        'person_member_spending_to_nonmember_NP_pct': [0.2680566449872311],
        'person_member_spending_to_nonmember_SB_pct': [15.42551646292275],
        'person_nonmember_spending_to_member_NP_pct': [9.31615100786286],
        'person_nonmember_spending_to_member_PB_pct': [37.16891914950032],
        'person_nonmember_spending_to_member_SB_pct': [20.619519215802725],
        'person_nonmember_spending_to_nonmember_NP_pct': [23.946729130924936],
        'person_nonmember_spending_to_nonmember_SB_pct': [8.948681495909167],
        'CBFS_spending_ratio': [70]
    }

    if scenario == '1':
        data = data_01
    elif scenario == '2':
        data = data_02
    elif scenario == '3':
        data = data_03
    elif scenario == '4':
        data = data_04
    else:
        raise Exception

    extra = {
        'doBFGS': [''],
        'doGenetic': [''],
        'doRandomStart': [''],
        'earmarks_TS_lb': ['35'],  # equal to TSI
        'earmarks_TS_ub': ['99'],
        'spending_TS_lb': ['20'],
        'spending_TS_ub': ['80'],
        'spending_pct_lb': ['.1'],
        'spending_pct_ub': ['70'],
        'flexible_earmark_NP_donation': [''],
        'flexible_earmark_NP_donation_TS': [''],
        'flexible_earmark_PB_subsidy': [''],
        'flexible_earmark_PB_subsidy_TS': [''],
        'flexible_earmark_SB_subsidy': [''],
        'flexible_earmark_SB_subsidy_TS': [''],
        'flexible_earmark_nurture': [''],
        'flexible_earmark_nurture_TS': [''],
        'flexible_person_member_spending_to_member_NP_TS': [''],
        'flexible_person_member_spending_to_member_NP_pct': [''],
        'flexible_person_member_spending_to_member_PB_TS': [''],
        'flexible_person_member_spending_to_member_PB_pct': [''],
        'flexible_person_member_spending_to_member_SB_TS': [''],
        'flexible_person_member_spending_to_member_SB_pct': [''],
        'flexible_person_member_spending_to_nonmember_NP_pct': [''],
        'flexible_person_member_spending_to_nonmember_SB_pct': [''],
        'flexible_person_nonmember_spending_to_member_NP_pct': [''],
        'flexible_person_nonmember_spending_to_member_PB_pct': [''],
        'flexible_person_nonmember_spending_to_member_SB_pct': [''],
        'flexible_person_nonmember_spending_to_nonmember_NP_pct': [''],
        'flexible_person_nonmember_spending_to_nonmember_SB_pct': ['']
    }

    data.update(extra)

    # create form to post data
    document['hidden_form'].html = ""
    keys = data.keys()
    method = "post"
    form = html.FORM(method='post', action='/runModel', target="_blank")
    for k in keys:
        ele = html.INPUT(type="hidden", name=k, value=data[k])
        form <= ele

    document['hidden_form'] <= form

    form.submit()