本文整理汇总了Python中article.Article.load_from_uuid方法的典型用法代码示例。如果您正苦于以下问题:Python Article.load_from_uuid方法的具体用法?Python Article.load_from_uuid怎么用?Python Article.load_from_uuid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类article.Article
的用法示例。
在下文中一共展示了Article.load_from_uuid方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: reparse_api
# 需要导入模块: from article import Article [as 别名]
# 或者: from article.Article import load_from_uuid [as 别名]
def reparse_api(version=1):
""" Reparse an already parsed and stored article with a given UUID """
if not (1 <= version <= 1):
return better_jsonify(valid="False", reason="Unsupported version")
uuid = request.form.get("id", "").strip()[0:_MAX_UUID_LENGTH]
tokens = None
register = {}
stats = {}
with SessionContext(commit=True) as session:
# Load the article
a = ArticleProxy.load_from_uuid(uuid, session)
if a is not None:
# Found: Parse it (with a fresh parser) and store the updated version
a.parse(session, verbose=True, reload_parser=True)
# Save the tokens
tokens = a.tokens
# Build register of person names
register = a.create_register(session)
stats = dict(
num_tokens=a.num_tokens,
num_sentences=a.num_sentences,
num_parsed=a.num_parsed,
ambiguity=a.ambiguity,
)
# Return the tokens as a JSON structure to the client,
# along with a name register and article statistics
return better_jsonify(valid=True, result=tokens, register=register, stats=stats)
示例2: article_api
# 需要导入模块: from article import Article [as 别名]
# 或者: from article.Article import load_from_uuid [as 别名]
def article_api(version=1):
""" Obtain information about an article, given its URL or id """
if not (1 <= version <= 1):
return better_jsonify(valid=False, reason="Unsupported version")
if request.method == "GET":
url = request.args.get("url")
uuid = request.args.get("id")
else:
url = request.form.get("url")
uuid = request.form.get("id")
if url:
url = url.strip()[0:_MAX_URL_LENGTH]
if uuid:
uuid = uuid.strip()[0:_MAX_UUID_LENGTH]
if url:
# URL has priority, if both are specified
uuid = None
if not url and not uuid:
return better_jsonify(valid=False, reason="No url or id specified in query")
with SessionContext(commit=True) as session:
if uuid:
a = ArticleProxy.load_from_uuid(uuid, session)
elif url.startswith("http:") or url.startswith("https:"):
a = ArticleProxy.load_from_url(url, session)
else:
a = None
if a is None:
return better_jsonify(valid=False, reason="Article not found")
if a.html is None:
return better_jsonify(valid=False, reason="Unable to fetch article")
# Prepare the article for display
a.prepare(session)
register = a.create_register(session, all_names=True)
# Fetch names of article topics, if any
topics = (
session.query(ArticleTopic).filter(ArticleTopic.article_id == a.uuid).all()
)
topics = [dict(name=t.topic.name, id=t.topic.identifier) for t in topics]
return better_jsonify(
valid=True,
url=a.url,
id=a.uuid,
heading=a.heading,
author=a.author,
ts=a.timestamp.isoformat()[0:19],
num_sentences=a.num_sentences,
num_parsed=a.num_parsed,
ambiguity=a.ambiguity,
register=register,
topics=topics,
)
示例3: speed_test
# 需要导入模块: from article import Article [as 别名]
# 或者: from article.Article import load_from_uuid [as 别名]
def speed_test(uuid):
try:
print("Starting speed test")
t0 = time.time()
with SessionContext(commit = True) as session:
# Load the article
a = Article.load_from_uuid(uuid, session)
if a is not None:
# Parse it and store the updated version
a.parse(session, verbose = True)
t1 = time.time()
print("Parsing finished in {0:.2f} seconds".format(t1 - t0))
finally:
Article.cleanup()
示例4: page
# 需要导入模块: from article import Article [as 别名]
# 或者: from article.Article import load_from_uuid [as 别名]
def page():
""" Handler for a page displaying the parse of an arbitrary web
page by URL or an already scraped article by UUID """
url = request.args.get("url", None)
uuid = request.args.get("id", None)
if url:
url = url.strip()[0:_MAX_URL_LENGTH]
if uuid:
uuid = uuid.strip()[0:_MAX_UUID_LENGTH]
if url:
# URL has priority, if both are specified
uuid = None
if not url and not uuid:
# !!! TODO: Separate error page
return redirect(url_for("routes.main"))
with SessionContext(commit=True) as session:
if uuid:
a = ArticleProxy.load_from_uuid(uuid, session)
elif url.startswith("http:") or url.startswith("https:"):
a = ArticleProxy.scrape_from_url(url, session) # Forces a new scrape
else:
a = None
if a is None:
# !!! TODO: Separate error page
return redirect(url_for("routes.main"))
# Prepare the article for display (may cause it to be parsed and stored)
a.prepare(session, verbose=True, reload_parser=True)
register = a.create_register(session, all_names=True)
# Fetch names of article topics, if any
topics = (
session.query(ArticleTopic).filter(ArticleTopic.article_id == a.uuid).all()
)
topics = [dict(name=t.topic.name, id=t.topic.identifier) for t in topics]
# Fetch similar (related) articles, if any
DISPLAY = 10 # Display at most 10 matches
similar = Search.list_similar_to_article(session, a.uuid, n=DISPLAY)
return render_template(
"page.html", article=a, register=register, topics=topics, similar=similar
)