本文整理汇总了Python中pyasm.common.Date.add_days方法的典型用法代码示例。如果您正苦于以下问题:Python Date.add_days方法的具体用法?Python Date.add_days怎么用?Python Date.add_days使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyasm.common.Date
的用法示例。
在下文中一共展示了Date.add_days方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: add_initial_tasks
# 需要导入模块: from pyasm.common import Date [as 别名]
# 或者: from pyasm.common.Date import add_days [as 别名]
def add_initial_tasks(sobject, pipeline_code=None, processes=[], contexts=[], skip_duplicate=True, mode='standard',start_offset=0):
'''add initial tasks based on the pipeline of the sobject'''
from pipeline import Pipeline
def _get_context(existing_task_dict, process_name, context=None):
existed = False
if not existing_task_dict:
if context:
context = context
else:
context = process_name
else:
compare_key = "%s:%s" %(process_name, context)
max_num = 0
for item in existing_task_dict.keys():
item_stripped = re.sub('/\d+$', '', item)
#if item.startswith(compare_key):
if item_stripped == compare_key:
existing_context = item.replace('%s:'%process_name,'')
suffix = existing_context.split('/')[-1]
try:
num = int(suffix)
except:
num = 0
if num > max_num:
max_num = num
existed = True
if existed:
context = "%s/%0.3d" % (context, max_num+1)
return context
# get pipeline
if not pipeline_code:
pipeline_code = sobject.get_value("pipeline_code")
if pipeline_code in ['', '__default__']:
pipeline = SearchType.create("sthpw/pipeline")
pipeline.set_value("code", "__default__")
pipeline.set_value("pipeline", '''
<pipeline>
<process name='publish'/>
</pipeline>
''')
# FIXME: HACK to initialize virtual pipeline
pipeline.set_pipeline(pipeline.get_value("pipeline"))
else:
pipeline = Pipeline.get_by_code(pipeline_code)
if not pipeline:
print "WARNING: pipeline '%s' does not exist" % pipeline_code
return []
#TODO: add recursive property here
if processes:
process_names = processes
else:
process_names = pipeline.get_process_names(recurse=True)
# remember which ones already exist
existing_tasks = Task.get_by_sobject(sobject, order=False)
existing_task_dict = {}
for x in existing_tasks:
key1 = '%s:%s' %(x.get_value('process'),x.get_value("context"))
existing_task_dict[key1] = True
# for backward compatibility, if the process has been created, we will skip later below
# we may remove this in the future
#key2 = '%s' %(x.get_value('process'))
#existing_task_dict[key2] = True
# create all of the tasks
description = ""
tasks = []
start_date = Date()
start_date.add_days(start_offset)
bid_duration_unit = ProdSetting.get_value_by_key("bid_duration_unit")
if not bid_duration_unit:
bid_duration_unit = 'hour'
# that's the date range in 5 days (not hours)
default_duration = 5
default_bid_duration = 8
if bid_duration_unit == 'minute':
default_bid_duration = 60
last_task = None
# this is the explicit mode for creating task for a specific process:context combo
if mode=='context':
#.........这里部分代码省略.........
示例2: update_dependent_tasks
# 需要导入模块: from pyasm.common import Date [as 别名]
# 或者: from pyasm.common.Date import add_days [as 别名]
def update_dependent_tasks(my, top=True):
'''for purposes of dependent tasks'''
if top:
Task.tasks_updated = []
Task.tasks_updated.append(my.get_id())
# get the dependent tasks
tasks = my.get_dependent_tasks()
bid_start_date = my.get_value("bid_start_date")
bid_end_date = my.get_value("bid_end_date")
bid_duration_unit = ProdSetting.get_value_by_key("bid_duration_unit")
if not bid_duration_unit:
bid_duration_unit = 'hour'
# if there is no end date specified, return
if not bid_end_date:
bid_duration = my.get_value("bid_duration")
if bid_duration and bid_start_date:
date = Date(db=bid_start_date)
bid_duration = float(bid_duration)
if bid_duration_unit == 'minute':
date.add_minutes(bid_duration)
else:
date.add_hours(bid_duration)
bid_end_date = date.get_db_time()
else:
return
for task in tasks:
# prevent circular dependency if for some reason they occur.
if task.get_id() in Task.tasks_updated:
Environment.add_warning("Circular dependency", "Circular dependency with task '%s'" % task.get_id() )
continue
Task.tasks_updated.append(my.get_id())
# if the dependency is fixed, update the d
#mode = task.get_value("mode")
mode = "depend"
# put the start date as the end date
if mode == "depend":
# add one day to the end date to get the start date
date = Date(db=bid_end_date)
date.add_days(1)
bid_start_date = date.get_db_time()
task.set_value("bid_start_date", bid_start_date )
# check if there is a duration in hours to this date
bid_duration = task.get_value("bid_duration")
if bid_duration:
bid_duration = int(bid_duration)
date = Date(db=bid_start_date)
if bid_duration_unit == 'minute':
date.add_minutes(bid_duration)
else:
date.add_hours(bid_duration)
bid_end_date = date.get_db_time()
task.set_value("bid_end_date", bid_end_date)
task.commit()
task.update_dependent_tasks(False)