本文整理汇总了Python中datamodel.Library.versions_for_key方法的典型用法代码示例。如果您正苦于以下问题:Python Library.versions_for_key方法的具体用法?Python Library.versions_for_key怎么用?Python Library.versions_for_key使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类datamodel.Library
的用法示例。
在下文中一共展示了Library.versions_for_key方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get
# 需要导入模块: from datamodel import Library [as 别名]
# 或者: from datamodel.Library import versions_for_key [as 别名]
def get(self, owner, repo, version):
logging.info('ingesting version %s/%s/%s', owner, repo, version)
github = quota.GitHub()
if not github.reserve(1):
self.response.set_status(500)
return
key = ndb.Key(Library, '%s/%s' % (owner, repo), Version, version)
response = urlfetch.fetch(util.content_url(owner, repo, version, 'README.md'))
readme = response.content
try:
content = Content(parent=key, id='readme', content=readme)
content.etag = response.headers.get('ETag', None)
content.put()
except db.BadValueError:
ver = key.get()
ver.error = "Could not store README.md as a utf-8 string"
ver.put()
self.response.set_status(200)
return
response = github.markdown(readme)
content = Content(parent=key, id='readme.html', content=response.content)
content.put()
response = urlfetch.fetch(util.content_url(owner, repo, version, 'bower.json'))
try:
json.loads(response.content)
except ValueError:
ver = key.get()
ver.error = "This version has a missing or broken bower.json"
ver.put()
self.response.set_status(200)
return
content = Content(parent=key, id='bower', content=response.content)
content.etag = response.headers.get('ETag', None)
content.put()
versions = Library.versions_for_key(key.parent())
if versions[-1] == version:
library = key.parent().get()
if library.kind == "collection":
task_url = util.ingest_dependencies_task(owner, repo, version)
util.new_task(task_url)
bower = json.loads(response.content)
metadata = json.loads(library.metadata)
logging.info('adding search index for %s', version)
description = bower.get("description", metadata.get("description", ""))
document = search.Document(doc_id='%s/%s' % (owner, repo), fields=[
search.AtomField(name='full_name', value=metadata['full_name']),
search.TextField(name='owner', value=owner),
search.TextField(name='repo', value=repo),
search.TextField(name='version', value=version),
search.TextField(name='repoparts', value=' '.join(repo.split('-'))),
search.TextField(name='description', value=description),
search.TextField(name='keywords', value=' '.join(bower.get('keywords', []))),
search.NumberField(name='stars', value=metadata.get('stargazers_count')),
search.NumberField(name='subscribers', value=metadata.get('subscribers_count')),
search.NumberField(name='forks', value=metadata.get('forks')),
search.NumberField(name='contributors', value=library.contributor_count),
search.DateField(name='updated_at', value=datetime.datetime.strptime(metadata.get('updated_at'), TIME_FORMAT))
])
index = search.Index('repo')
index.put(document)
self.response.set_status(200)