本文整理汇总了Python中buildbot.util.lru.LRUCache类的典型用法代码示例。如果您正苦于以下问题:Python LRUCache类的具体用法?Python LRUCache怎么用?Python LRUCache使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了LRUCache类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __setstate__
def __setstate__(self, d):
# when loading, re-initialize the transient stuff. Remember that
# upgradeToVersion1 and such will be called after this finishes.
styles.Versioned.__setstate__(self, d)
self.buildCache = LRUCache(self.cacheMiss)
self.currentBuilds = []
self.watchers = []
self.slavenames = []
示例2: __init__
def __init__(self, buildername, tags, master, description):
self.name = buildername
self.tags = tags
self.description = description
self.master = master
self.slavenames = []
self.events = []
# these three hold Events, and are used to retrieve the current
# state of the boxes.
self.lastBuildStatus = None
self.currentBuilds = []
self.nextBuild = None
self.watchers = []
self.buildCache = LRUCache(self.cacheMiss)
示例3: __init__
def __init__(self, buildername, category, master):
self.name = buildername
self.category = category
self.master = master
self.slavenames = []
self.events = []
# these three hold Events, and are used to retrieve the current
# state of the boxes.
self.lastBuildStatus = None
#self.currentBig = None
#self.currentSmall = None
self.currentBuilds = []
self.nextBuild = None
self.watchers = []
self.buildCache = LRUCache(self.cacheMiss)
示例4: BuilderStatus
class BuilderStatus(styles.Versioned):
"""I handle status information for a single process.build.Builder object.
That object sends status changes to me (frequently as Events), and I
provide them on demand to the various status recipients, like the HTML
waterfall display and the live status clients. It also sends build
summaries to me, which I log and provide to status clients who aren't
interested in seeing details of the individual build steps.
I am responsible for maintaining the list of historic Events and Builds,
pruning old ones, and loading them from / saving them to disk.
I live in the buildbot.process.build.Builder object, in the
.builder_status attribute.
@type tags: None or list of strings
@ivar tags: user-defined "tag" this builder has; can be
used to filter on in status clients
"""
implements(interfaces.IBuilderStatus, interfaces.IEventSource)
persistenceVersion = 2
persistenceForgets = ('wasUpgraded', )
tags = None
currentBigState = "offline" # or idle/waiting/interlocked/building
basedir = None # filled in by our parent
def __init__(self, buildername, tags, master, description):
self.name = buildername
self.tags = tags
self.description = description
self.master = master
self.slavenames = []
self.events = []
# these three hold Events, and are used to retrieve the current
# state of the boxes.
self.lastBuildStatus = None
self.currentBuilds = []
self.nextBuild = None
self.watchers = []
self.buildCache = LRUCache(self.cacheMiss)
# persistence
def __getstate__(self):
# when saving, don't record transient stuff like what builds are
# currently running, because they won't be there when we start back
# up. Nor do we save self.watchers, nor anything that gets set by our
# parent like .basedir and .status
d = styles.Versioned.__getstate__(self)
d['watchers'] = []
del d['buildCache']
for b in self.currentBuilds:
b.saveYourself()
# TODO: push a 'hey, build was interrupted' event
del d['currentBuilds']
d.pop('pendingBuilds', None)
del d['currentBigState']
del d['basedir']
del d['status']
del d['nextBuildNumber']
del d['master']
return d
def __setstate__(self, d):
# when loading, re-initialize the transient stuff. Remember that
# upgradeToVersion1 and such will be called after this finishes.
styles.Versioned.__setstate__(self, d)
self.buildCache = LRUCache(self.cacheMiss)
self.currentBuilds = []
self.watchers = []
self.slavenames = []
# self.basedir must be filled in by our parent
# self.status must be filled in by our parent
# self.master must be filled in by our parent
def upgradeToVersion1(self):
if hasattr(self, 'slavename'):
self.slavenames = [self.slavename]
del self.slavename
if hasattr(self, 'nextBuildNumber'):
del self.nextBuildNumber # determineNextBuildNumber chooses this
self.wasUpgraded = True
def upgradeToVersion2(self):
if hasattr(self, 'category'):
self.tags = self.category and [self.category] or None
del self.category
self.wasUpgraded = True
def determineNextBuildNumber(self):
"""Scan our directory of saved BuildStatus instances to determine
what our self.nextBuildNumber should be. Set it one larger than the
highest-numbered build we discover. This is called by the top-level
Status object shortly after we are created or loaded from disk.
"""
existing_builds = [int(f)
#.........这里部分代码省略.........
示例5: BuilderStatus
class BuilderStatus(styles.Versioned):
"""I handle status information for a single process.build.Builder object.
That object sends status changes to me (frequently as Events), and I
provide them on demand to the various status recipients, like the HTML
waterfall display and the live status clients. It also sends build
summaries to me, which I log and provide to status clients who aren't
interested in seeing details of the individual build steps.
I am responsible for maintaining the list of historic Events and Builds,
pruning old ones, and loading them from / saving them to disk.
I live in the buildbot.process.build.Builder object, in the
.builder_status attribute.
@type tags: None or list of strings
@ivar tags: user-defined "tag" this builder has; can be
used to filter on in status clients
"""
implements(interfaces.IBuilderStatus, interfaces.IEventSource)
persistenceVersion = 2
persistenceForgets = ('wasUpgraded', )
tags = None
currentBigState = "offline" # or idle/waiting/interlocked/building
basedir = None # filled in by our parent
def __init__(self, buildername, tags, master, description):
self.name = buildername
self.tags = tags
self.description = description
self.master = master
self.workernames = []
self.events = []
# these three hold Events, and are used to retrieve the current
# state of the boxes.
self.lastBuildStatus = None
self.currentBuilds = []
self.nextBuild = None
self.watchers = []
self.buildCache = LRUCache(self.cacheMiss)
# build cache management
def setCacheSize(self, size):
self.buildCache.set_max_size(size)
def getBuildByNumber(self, number):
return self.buildCache.get(number)
def cacheMiss(self, number, **kwargs):
# If kwargs['val'] exists, this is a new value being added to
# the cache. Just return it.
if 'val' in kwargs:
return kwargs['val']
# first look in currentBuilds
for b in self.currentBuilds:
if b.number == number:
return b
# Otherwise it is in the database and thus inaccesible.
return None
def prune(self, events_only=False):
pass
# IBuilderStatus methods
def getName(self):
# if builderstatus page does show not up without any reason then
# str(self.name) may be a workaround
return self.name
def setDescription(self, description):
# used during reconfig
self.description = description
def getDescription(self):
return self.description
def getState(self):
return (self.currentBigState, self.currentBuilds)
def getWorkers(self):
return [self.status.getWorker(name) for name in self.workernames]
def getPendingBuildRequestStatuses(self):
# just assert 0 here. According to dustin the whole class will go away
# soon.
assert 0
db = self.status.master.db
d = db.buildrequests.getBuildRequests(claimed=False,
buildername=self.name)
@d.addCallback
def make_statuses(brdicts):
return [BuildRequestStatus(self.name, brdict['brid'],
self.status, brdict=brdict)
#.........这里部分代码省略.........