本文整理汇总了Python中logs.Logs.error方法的典型用法代码示例。如果您正苦于以下问题:Python Logs.error方法的具体用法?Python Logs.error怎么用?Python Logs.error使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类logs.Logs
的用法示例。
在下文中一共展示了Logs.error方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from logs import Logs [as 别名]
# 或者: from logs.Logs import error [as 别名]
class Analysis:
"""A helper for analyzing company data in text."""
def __init__(self, logs_to_cloud):
self.logs = Logs(name="analysis", to_cloud=logs_to_cloud)
self.gcnl_client = language.Client()
def get_company_data(self, mid):
"""Looks up stock ticker information for a company via its Freebase ID.
"""
query = MID_TO_TICKER_QUERY % mid
bindings = self.make_wikidata_request(query)
if not bindings:
self.logs.debug("No company data found for MID: %s" % mid)
return None
# Collect the data from the response.
datas = []
for binding in bindings:
try:
name = binding["companyLabel"]["value"]
except KeyError:
name = None
try:
root = binding["rootLabel"]["value"]
except KeyError:
root = None
try:
ticker = binding["tickerLabel"]["value"]
except KeyError:
ticker = None
try:
exchange = binding["exchangeNameLabel"]["value"]
except KeyError:
exchange = None
data = {"name": name,
"ticker": ticker,
"exchange": exchange}
# Add the root if there is one.
if root and root != name:
data["root"] = root
# Add to the list unless we already have the same entry.
if data not in datas:
self.logs.debug("Adding company data: %s" % data)
datas.append(data)
else:
self.logs.warn("Skipping duplicate company data: %s" % data)
return datas
def find_companies(self, tweet):
"""Finds mentions of companies in a tweet."""
if not tweet:
self.logs.warn("No tweet to find companies.")
return None
# Use the text of the tweet with any mentions expanded to improve
# entity detection.
text = self.get_expanded_text(tweet)
if not text:
self.logs.error("Failed to get text from tweet: %s" % tweet)
return None
# Run entity detection.
document = self.gcnl_client.document_from_text(text)
entities = document.analyze_entities()
self.logs.debug("Found entities: %s" %
self.entities_tostring(entities))
# Collect all entities which are publicly traded companies, i.e.
# entities which have a known stock ticker symbol.
companies = []
for entity in entities:
# Use the Freebase ID of the entity to find company data. Skip any
# entity which doesn't have a Freebase ID (unless we find one via
# the Twitter handle).
name = entity.name
metadata = entity.metadata
try:
mid = metadata["mid"]
except KeyError:
self.logs.debug("No MID found for entity: %s" % name)
continue
company_data = self.get_company_data(mid)
# Skip any entity for which we can't find any company data.
if not company_data:
self.logs.debug("No company data found for entity: %s (%s)" %
(name, mid))
#.........这里部分代码省略.........
示例2: __init__
# 需要导入模块: from logs import Logs [as 别名]
# 或者: from logs.Logs import error [as 别名]
class Trading:
"""A helper for making stock trades."""
def __init__(self, logs_to_cloud):
self.logs = Logs(name="trading", to_cloud=logs_to_cloud)
def make_trades(self, companies):
"""Executes trades for the specified companies based on sentiment."""
# Determine whether the markets are open.
market_status = self.get_market_status()
if not market_status:
self.logs.error("Not trading without market status.")
return False
# Filter for any strategies resulting in trades.
actionable_strategies = []
market_status = self.get_market_status()
for company in companies:
strategy = self.get_strategy(company, market_status)
if strategy["action"] != "hold":
actionable_strategies.append(strategy)
else:
self.logs.warn("Dropping strategy: %s" % strategy)
if not actionable_strategies:
self.logs.warn("No actionable strategies for trading.")
return False
# Calculate the budget per strategy.
balance = self.get_balance()
budget = self.get_budget(balance, len(actionable_strategies))
if not budget:
self.logs.warn("No budget for trading: %s %s %s" %
(budget, balance, actionable_strategies))
return False
self.logs.debug("Using budget: %s x $%s" %
(len(actionable_strategies), budget))
# Handle trades for each strategy.
success = True
for strategy in actionable_strategies:
ticker = strategy["ticker"]
action = strategy["action"]
# TODO: Use limits for orders.
# Execute the strategy.
if action == "bull":
self.logs.debug("Bull: %s %s" % (ticker, budget))
success = success and self.bull(ticker, budget)
elif action == "bear":
self.logs.debug("Bear: %s %s" % (ticker, budget))
success = success and self.bear(ticker, budget)
else:
self.logs.error("Unknown strategy: %s" % strategy)
return success
def get_strategy(self, company, market_status):
"""Determines the strategy for trading a company based on sentiment and
market status.
"""
ticker = company["ticker"]
sentiment = company["sentiment"]
strategy = {}
strategy["name"] = company["name"]
if "root" in company:
strategy["root"] = company["root"]
strategy["sentiment"] = company["sentiment"]
strategy["ticker"] = ticker
strategy["exchange"] = company["exchange"]
# Don't do anything with blacklisted stocks.
if ticker in TICKER_BLACKLIST:
strategy["action"] = "hold"
strategy["reason"] = "blacklist"
return strategy
# TODO: Figure out some strategy for the markets closed case.
# Don't trade unless the markets are open or are about to open.
if market_status != "open" and market_status != "pre":
strategy["action"] = "hold"
strategy["reason"] = "market closed"
return strategy
# Can't trade without sentiment.
if sentiment == 0:
strategy["action"] = "hold"
strategy["reason"] = "neutral sentiment"
return strategy
# Determine bull or bear based on sentiment direction.
if sentiment > 0:
strategy["action"] = "bull"
strategy["reason"] = "positive sentiment"
return strategy
#.........这里部分代码省略.........