本文整理汇总了Python中nell.utilities.TimeAgent.quarter方法的典型用法代码示例。如果您正苦于以下问题:Python TimeAgent.quarter方法的具体用法?Python TimeAgent.quarter怎么用?Python TimeAgent.quarter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类nell.utilities.TimeAgent
的用法示例。
在下文中一共展示了TimeAgent.quarter方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: reinitScore
# 需要导入模块: from nell.utilities import TimeAgent [as 别名]
# 或者: from nell.utilities.TimeAgent import quarter [as 别名]
def reinitScore(self, period):
now = TimeAgent.quarter(datetime.utcnow())
if now < period.start:
period.reinit_score()
示例2: from_post
# 需要导入模块: from nell.utilities import TimeAgent [as 别名]
# 或者: from nell.utilities.TimeAgent import quarter [as 别名]
def from_post(self, fdata, tz):
# only update the score if something in the period has changed
update_score = False
if not update_score:
update_score = self.period.id is None
# if newly created then start with a default
if update_score:
self.period.reinit_score()
handle = fdata.get("handle", "")
if handle:
new_session = Sesshun.handle2session(handle)
if not update_score:
update_score = self.period.session != new_session
self.period.session = new_session
else:
try:
maintenance = Project.objects.get(pcode='Maintenance')
self.period.session = Sesshun.objects.get(project=maintenance)
except:
self.period.session = Sesshun.objects.get(id=fdata.get("session", 1))
now = TimeAgent.quarter(datetime.utcnow())
date = fdata.get("date", None)
time = fdata.get("time", "00:00")
if date is None:
self.period.start = now
else:
new_start = TimeAgent.quarter(strStr2dt(date, time + ':00'))
if tz == 'ET':
new_start = TimeAgent.est2utc(self.period.start)
if not update_score:
update_score = self.period.start != new_start
self.period.start = new_start
new_duration = TimeAgent.rndHr2Qtr(float(fdata.get("duration", "1.0")))
if not update_score:
update_score = self.period.duration != new_duration
self.period.duration = new_duration
# if the score needs to be updated, then prepare it for this
if update_score and now < self.period.start:
self.period.reinit_score()
self.period.backup = True if fdata.get("backup", None) == 'true' else False
stateAbbr = fdata.get("state", "P")
self.period.state = Period_State.objects.get(abbreviation=stateAbbr)
self.period.moc_ack = fdata.get("moc_ack", self.period.moc_ack)
# elective?
eId = fdata.get("elective_id", None)
if eId is not None:
self.period.elective_id = eId
# window?
wId = fdata.get("window_id", None)
if wId is not None:
self.period.window_id = wId
try:
win = Window.objects.get(id = wId)
except Window.DoesNotExist:
pass
else:
end = win.last_date()
if end and date is None:
self.period.start = datetime(end.year, end.month, end.day)
self.period.duration = 1
elif self.period.session.isWindowed() and self.period.window_id is None:
# just because the window id wasn't specified doesn't mean
# we don't want to assign this a window:
# for instance, if this period was created outside of the
# Windowed Period Explorer, we'll have to assign a window
self.period.assign_a_window()
# is this period a default period for a window?
default = fdata.get("wdefault", None)
if default is not None: #
if default == "true" and self.period.window is not None:
# assign this period as a default
self.period.window.default_period = self.period
self.period.window.save()
elif default == "false" and self.period.window is not None:
# unassign this period as a default
self.period.window.default_period = None
self.period.window.save()
# how to initialize scheduled time? when they get published!
# so, only create an accounting object if it needs it.
if self.period.accounting is None:
schd = self.period.duration if self.period.isScheduled() else 0.0
pa = Period_Accounting(scheduled = schd)
pa.save()
self.period.accounting = pa
self.period.accounting.update_from_post(fdata)
self.period.save()
# now that we have an id (from saving), we can specify the relation
# between this period and assocaited rcvrs
self.update_rcvrs_from_post(fdata)