コード例 #1
0
ファイル: picotable.py プロジェクト: wayhome25/shuup
 def filter_queryset(self, queryset, column, value, context):
     if value:
         value = {
             "min": try_parse_datetime(value.get("min")),
             "max": try_parse_datetime(value.get("max"))
         }
     return super(DateRangeFilter, self).filter_queryset(queryset, column, value, context)
コード例 #2
0
ファイル: picotable.py プロジェクト: ruqaiya/shuup
 def filter_queryset(self, queryset, column, value, context):
     if value:
         value = {
             "min": try_parse_datetime(value.get("min")),
             "max": try_parse_datetime(value.get("max"))
         }
     return super(DateRangeFilter, self).filter_queryset(queryset, column, value, context)
コード例 #3
0
ファイル: test_dates.py プロジェクト: ruqaiya/shuup
def test_try_parse_datetime():
    date_fmt1 = "2016-12-31 15:40:34"
    date_fmt2 = "2018-12-31 15:40"
    date_fmt3 = "12/31/2016"

    assert try_parse_datetime(date_fmt1) == datetime(2016, 12, 31, 15, 40, 34)
    assert try_parse_datetime(date_fmt2) == datetime(2018, 12, 31, 15, 40)
    assert try_parse_datetime(date_fmt3) == datetime(2016, 12, 31)
    assert try_parse_datetime("abc") is None
コード例 #4
0
def test_try_parse_datetime():
    date_fmt1 = "2016-12-31 15:40:34"
    date_fmt2 = "2018-12-31 15:40"
    date_fmt3 = "12/31/2016"

    assert try_parse_datetime(date_fmt1) == datetime(2016, 12, 31, 15, 40, 34)
    assert try_parse_datetime(date_fmt2) == datetime(2018, 12, 31, 15, 40)
    assert try_parse_datetime(date_fmt3) == datetime(2016, 12, 31)
    assert try_parse_datetime("abc") is None
コード例 #5
0
def parse_date_range(value):
    output = parse_date_range_preset(value)
    if output:
        return output

    if isinstance(value, six.string_types):
        value = value.strip()
        if ".." in value:
            start, end = value.split("..", 1)
        elif value.count("-") == 1:
            start, end = value.split("-", 1)
        else:
            start, end = value.split(None, 1)
    elif isinstance(value, (list, tuple)):
        start, end = value[:2]
    else:
        raise ValueError("Error! Can't split date range: `%r`." % value)
    date_range = (dates.try_parse_datetime(start), dates.try_parse_datetime(end))
    if any(p is None for p in date_range):
        raise ValueError("Error! Invalid date range: `%r` (parsed as `%r`)." % (value, date_range))
    return date_range
コード例 #6
0
ファイル: utils.py プロジェクト: ruqaiya/shuup
def parse_date_range(value):
    output = parse_date_range_preset(value)
    if output:
        return output

    if isinstance(value, six.string_types):
        value = value.strip()
        if ".." in value:
            start, end = value.split("..", 1)
        elif value.count("-") == 1:
            start, end = value.split("-", 1)
        else:
            start, end = value.split(None, 1)
    elif isinstance(value, (list, tuple)):
        start, end = value[:2]
    else:
        raise ValueError("Can't split date range: %r" % value)
    date_range = (dates.try_parse_datetime(start), dates.try_parse_datetime(end))
    if any(p is None for p in date_range):
        raise ValueError("Invalid date range: %r (parsed as %r)" % (value, date_range))
    return date_range