本文整理汇总了Python中datamodel.Library.default_version_for_key_async方法的典型用法代码示例。如果您正苦于以下问题:Python Library.default_version_for_key_async方法的具体用法?Python Library.default_version_for_key_async怎么用?Python Library.default_version_for_key_async使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类datamodel.Library
的用法示例。
在下文中一共展示了Library.default_version_for_key_async方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: handle_get
# 需要导入模块: from datamodel import Library [as 别名]
# 或者: from datamodel.Library import default_version_for_key_async [as 别名]
def handle_get(self, owner, repo):
library_key = ndb.Key(Library, Library.id(owner, repo))
version = Library.default_version_for_key_async(library_key).get_result()
if version is None:
return self.error('no versions for %s' % Library.id(owner, repo))
bower_key = ndb.Key(Library, Library.id(owner, repo), Version, version, Content, 'bower')
bower_object = bower_key.get()
bower = {} if bower_object is None else json.loads(bower_object.content)
version_key = bower_key.parent()
library = version_key.parent().get()
self.update_search_index(owner, repo, version_key, library, bower)
if library.kind == 'collection':
self.update_collection_dependencies(version_key, bower)
default_version = Library.default_version_for_key_async(library_key).get_result()
if default_version is not None and default_version != version:
return self.retry('default version changed while updating indexes')
示例2: handle_get
# 需要导入模块: from datamodel import Library [as 别名]
# 或者: from datamodel.Library import default_version_for_key_async [as 别名]
def handle_get(self, scope, package, latest=False):
self.init_library(scope, package)
if self.library is None:
self.response.set_status(404)
self.response.write('could not find library: %s' % Library.id(scope, package))
return
if latest:
version_id = Library.default_version_for_key_async(self.library.key).get_result()
if version_id:
version = Version.get_by_id(version_id, parent=self.library.key)
if version is not None:
self.trigger_analysis(version_id, version.sha, transactional=False)
else:
versions = Version.query(Version.status == Status.ready, ancestor=self.library.key).fetch()
for version in versions:
self.trigger_analysis(version.key.id(), version.sha, transactional=False)
示例3: handle_post
# 需要导入模块: from datamodel import Library [as 别名]
# 或者: from datamodel.Library import default_version_for_key_async [as 别名]
def handle_post(self):
# Ignore payloads larger than 5 MB.
if len(self.request.body) > 1048487 * 5:
return
message_json = json.loads(urllib.unquote(self.request.body).rstrip('='))
message = message_json['message']
data = base64.b64decode(str(message['data']))
attributes = message['attributes']
if len(attributes) == 0:
logging.error(message)
return
owner = attributes['owner']
repo = attributes['repo']
version = attributes['version']
error = attributes.get('error', None)
version_key = ndb.Key(Library, Library.id(owner, repo), Version, version)
content = Content.get_by_id('analysis', parent=version_key)
if content is None:
return
if data == '':
content.set_json(None)
else:
content.set_json(json.loads(data))
if error is None:
content.status = Status.ready
content.error = None
else:
content.status = Status.error
content.error = error
content.put()
if version_key.id() == Library.default_version_for_key_async(version_key.parent()).get_result():
task_url = util.update_indexes_task(owner, repo)
util.new_task(task_url, target='manage')
示例4: handle_post
# 需要导入模块: from datamodel import Library [as 别名]
# 或者: from datamodel.Library import default_version_for_key_async [as 别名]
def handle_post(self):
message_json = json.loads(urllib.unquote(self.request.body).rstrip('='))
message = message_json['message']
data = base64.b64decode(str(message['data']))
attributes = message['attributes']
owner = attributes['owner']
repo = attributes['repo']
version = attributes['version']
error = attributes.get('error', None)
version_key = ndb.Key(Library, Library.id(owner, repo), Version, version)
content = Content.get_by_id('analysis', parent=version_key)
if content is None:
return
if data == '':
content.content = None
elif len(data) > 500000:
# Max entity size is only 1MB.
logging.error('content was too large: %d %s %s', len(data), Library.id(owner, repo), version)
error = 'content was too large: %d' % len(data)
else:
content.content = data
if error is None:
content.status = Status.ready
content.error = None
else:
content.status = Status.error
content.error = error
content.put()
if version_key.id() == Library.default_version_for_key_async(version_key.parent()).get_result():
task_url = util.update_indexes_task(owner, repo)
util.new_task(task_url, target='manage')