本文整理汇总了Python中pyasm.search.Search.add_date_range_filter方法的典型用法代码示例。如果您正苦于以下问题:Python Search.add_date_range_filter方法的具体用法?Python Search.add_date_range_filter怎么用?Python Search.add_date_range_filter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyasm.search.Search
的用法示例。
在下文中一共展示了Search.add_date_range_filter方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: handle_search
# 需要导入模块: from pyasm.search import Search [as 别名]
# 或者: from pyasm.search.Search import add_date_range_filter [as 别名]
def handle_search(my):
# this is an absolute expression
my.search_expr = my.kwargs.get("search_expr")
my.search_type = my.kwargs.get("search_type")
if not my.search_type:
my.search_type = 'sthpw/task'
if my.search_expr:
search = Search.eval(my.search_expr)
else:
my.op_filters = my.kwargs.get("filters")
if my.op_filters:
if isinstance(my.op_filters, basestring):
my.op_filters = eval(my.op_filters)
search = Search(my.search_type)
if my.op_filters:
search.add_op_filters(my.op_filters)
my.start_column = my.kwargs.get('start_date_col')
if not my.start_column:
my.start_column = 'bid_start_date'
my.end_column = my.kwargs.get('end_date_col')
if not my.end_column:
my.end_column = 'bid_end_date'
search.add_op('begin')
if my.handler:
my.handler.alter_search(search)
search.add_op('or')
my.start_date = datetime(my.year, my.month, 1)
next_month = my.month+1
next_year = my.year
if next_month > 12:
next_month = 1
next_year += 1
my.end_date = datetime(next_year, next_month, 1)
my.end_date = my.end_date - timedelta(days=1)
# outer begin
search.add_op('begin')
search.add_op('begin')
search.add_date_range_filter(my.start_column, my.start_date, my.end_date)
search.add_date_range_filter(my.end_column, my.start_date, my.end_date)
search.add_op('or')
search.add_op('begin')
search.add_filter(my.start_column, my.start_date, op='<=')
search.add_filter(my.end_column, my.end_date, op='>=')
search.add_op('and')
search.add_op('or')
search.add_order_by(my.start_column)
print "search: ", search.get_statement()
my.sobjects = search.get_sobjects()
示例2: handle_search
# 需要导入模块: from pyasm.search import Search [as 别名]
# 或者: from pyasm.search.Search import add_date_range_filter [as 别名]
def handle_search(self):
parent_key = self.kwargs.get("parent_key")
# this is an absolute expression
self.search_expr = self.kwargs.get("search_expr")
self.search_type = self.kwargs.get("search_type")
if not self.search_type:
self.search_type = 'sthpw/task'
if self.search_expr:
result = Search.eval(self.search_expr)
if isinstance(result, list):
search = Search(self.search_type)
codes = [x.get_code() for x in result]
search.add_filters("code", codes)
else:
search = result
else:
self.op_filters = self.kwargs.get("filters")
if self.op_filters:
if isinstance(self.op_filters, basestring):
self.op_filters = eval(self.op_filters)
search = Search(self.search_type)
if self.op_filters:
search.add_op_filters(self.op_filters)
self.start_column = self.kwargs.get('start_date_col')
if not self.start_column:
self.start_column = 'bid_start_date'
self.end_column = self.kwargs.get('end_date_col')
if not self.end_column:
self.end_column = 'bid_end_date'
if parent_key:
parent = Search.get_by_search_key(parent_key)
search.add_parent_filter(parent)
search.add_op('begin')
if self.handler:
self.handler.alter_search(search)
search.add_op('or')
self.start_date = datetime(self.year, self.month, 1)
next_month = self.month+1
next_year = self.year
if next_month > 12:
next_month = 1
next_year += 1
self.end_date = datetime(next_year, next_month, 1)
self.end_date = self.end_date - timedelta(days=1)
# outer begin
search.add_op('begin')
search.add_op('begin')
search.add_date_range_filter(self.start_column, self.start_date, self.end_date)
search.add_date_range_filter(self.end_column, self.start_date, self.end_date)
search.add_op('or')
search.add_op('begin')
search.add_filter(self.start_column, self.start_date, op='<=')
search.add_filter(self.end_column, self.end_date, op='>=')
search.add_op('and')
search.add_op('or')
extra_codes = self.kwargs.get("extra_codes")
if extra_codes:
search.add_op('and')
extra_codes = extra_codes.split("|")
search.add_filters("code", extra_codes)
search.add_op('or')
search.add_order_by(self.start_column)
self.sobjects = search.get_sobjects()