本文整理汇总了Python中buildbot.status.web.base.Box类的典型用法代码示例。如果您正苦于以下问题:Python Box类的具体用法?Python Box怎么用?Python Box使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Box类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: phase2
def phase2(self, request, sourceNames, timestamps, eventGrid,
sourceEvents):
data = ""
if not timestamps:
return data
# first pass: figure out the height of the chunks, populate grid
grid = []
for i in range(1+len(sourceNames)):
grid.append([])
# grid is a list of columns, one for the timestamps, and one per
# event source. Each column is exactly the same height. Each element
# of the list is a single <td> box.
lastDate = time.strftime("<b>%d %b %Y</b>",
time.localtime(util.now()))
for r in range(0, len(timestamps)):
chunkstrip = eventGrid[r]
# chunkstrip is a horizontal strip of event blocks. Each block
# is a vertical list of events, all for the same source.
assert(len(chunkstrip) == len(sourceNames))
maxRows = reduce(lambda x,y: max(x,y),
map(lambda x: len(x), chunkstrip))
for i in range(maxRows):
if i != maxRows-1:
grid[0].append(None)
else:
# timestamp goes at the bottom of the chunk
stuff = []
# add the date at the beginning (if it is not the same as
# today's date), and each time it changes
todayday = time.strftime("<b>%a</b>",
time.localtime(timestamps[r]))
today = time.strftime("<b>%d %b %Y</b>",
time.localtime(timestamps[r]))
if today != lastDate:
stuff.append(todayday)
stuff.append(today)
lastDate = today
stuff.append(
time.strftime("%H:%M:%S",
time.localtime(timestamps[r])))
grid[0].append(Box(text=stuff, class_="Time",
valign="bottom", align="center"))
# at this point the timestamp column has been populated with
# maxRows boxes, most None but the last one has the time string
for c in range(0, len(chunkstrip)):
block = chunkstrip[c]
assert(block != None) # should be [] instead
for i in range(maxRows - len(block)):
# fill top of chunk with blank space
grid[c+1].append(None)
for i in range(len(block)):
# so the events are bottom-justified
b = IBox(block[i]).getBox(request)
b.parms['valign'] = "top"
b.parms['align'] = "center"
grid[c+1].append(b)
# now all the other columns have maxRows new boxes too
# populate the last row, if empty
gridlen = len(grid[0])
for i in range(len(grid)):
strip = grid[i]
assert(len(strip) == gridlen)
if strip[-1] == None:
if sourceEvents[i-1]:
filler = IBox(sourceEvents[i-1]).getBox(request)
else:
# this can happen if you delete part of the build history
filler = Box(text=["?"], align="center")
strip[-1] = filler
strip[-1].parms['rowspan'] = 1
# second pass: bubble the events upwards to un-occupied locations
# Every square of the grid that has a None in it needs to have
# something else take its place.
noBubble = request.args.get("nobubble",['0'])
noBubble = int(noBubble[0])
if not noBubble:
for col in range(len(grid)):
strip = grid[col]
if col == 1: # changes are handled differently
for i in range(2, len(strip)+1):
# only merge empty boxes. Don't bubble commit boxes.
if strip[-i] == None:
next = strip[-i+1]
assert(next)
if next:
#if not next.event:
if next.spacer:
# bubble the empty box up
strip[-i] = next
strip[-i].parms['rowspan'] += 1
strip[-i+1] = None
else:
# we are above a commit box. Leave it
# be, and turn the current box into an
# empty one
strip[-i] = Box([], rowspan=1,
comment="commit bubble")
strip[-i].spacer = True
else:
#.........这里部分代码省略.........
示例2: getBox
def getBox(self, req):
#b = Box(["spacer"], "white")
b = Box([])
b.spacer = True
return b
示例3: body
def body(self, req):
from twisted.web import html
status = self.getStatus(req)
control = self.getControl(req)
builders = req.args.get("builder", status.getBuilderNames())
branches = [b for b in req.args.get("branch", []) if b]
building = False
online = 0
base_builders_url = self.path_to_root(req) + "builders/"
all_builders = [html.escape(bn) for bn in builders]
trunk_builders = [bn for bn in all_builders if bn.startswith('trunk')]
stable_builders = [bn for bn in all_builders if bn.startswith('stable')]
trunk_builders_link = 'waterfall?builder='+'&builder='.join(trunk_builders)
stable_builders_link = 'waterfall?builder=' + '&builder='.join(stable_builders)
tr_b = False
st_b = False
data = ""
data += "<table class='grid' id='latest_builds'>"
for bn in all_builders:
if (bn.startswith('stable')) and (not st_b):
st_b = True
data += "<table class='grid' id='stable_builds'>\n"
data += "<tr class='grid-header'><td class='grid-cell'><span>Latest Stable</span></td><td class='grid-cell'><a href=%s>Stable Tests</a></td><td class='grid-cell'><a href='Changelog/5.0'>Changelog</a></td></tr><\n>"[:-3]%(stable_builders_link)
if (bn.startswith('trunk')) and (not tr_b):
tr_b = True
data += "<tr id='trunk_builds'><td colspan='3'></td>"
data += "<tr class='grid-header'><td class='grid-cell'><span>Latest Trunk</span></td><td class='grid-cell'><a href='%s'>Trunk Tests</a></td><td class='grid-cell'><a href='Changelog/trunk'>Changelog</a></td></tr><\n>"[:-3]%(trunk_builders_link)
base_builder_url = base_builders_url + urllib.quote(bn, safe='')
builder = status.getBuilder(bn)
data += "<tr class='grid-row'>\n"
data += '<td class="grid-cell"><a href="%s">%s</a></td>\n' \
% (base_builder_url, html.escape(bn))
builds = list(builder.generateFinishedBuilds(map_branches(branches),
num_builds=1))
if builds:
b = builds[0]
url = (base_builder_url + "/builds/%d" % b.getNumber())
try:
label = b.getProperty("got_revision")
except KeyError:
label = None
if not label or len(str(label)) > 20:
label = "#%d" % b.getNumber()
text = ['<a href="%s">%s</a>' % (url, label)]
text.append(' '.join(b.getText()))
box = Box(text, b.getColor(),
class_="LastBuild box %s" % build_get_class(b))
data += box.td(class_="grid-cell",align="center")
else:
data += '<td class="grid-cell" align="center">no build</td>\n'
current_box = ICurrentBox(builder).getBox(status)
data += current_box.td(class_="grid-cell",align="center")
data+='</tr>'
builder_status = builder.getState()[0]
if builder_status == "building":
building = True
online += 1
elif builder_status != "offline":
online += 1
data += "</table></table>\n"
if control is not None:
if building:
stopURL = "builders/_all/stop"
data += make_stop_form(stopURL, True, "Builds")
if online:
forceURL = "builders/_all/force"
data += make_force_build_form(forceURL, True)
return data