コード例 #1
0
ファイル: reading.py プロジェクト: mahendra-ramajayam/calibre
    def test_datetime(self):  # {{{
        ' Test the reading of datetimes stored in the db '
        from calibre.utils.date import parse_date
        from calibre.db.tables import c_parse, UNDEFINED_DATE, _c_speedup

        # First test parsing of string to UTC time
        for raw in ('2013-07-22 15:18:29+05:30', '  2013-07-22 15:18:29+00:00', '2013-07-22 15:18:29', '2003-09-21 23:30:00-06:00'):
            self.assertTrue(_c_speedup(raw))
            ctime = c_parse(raw)
            pytime = parse_date(raw, assume_utc=True)
            self.assertEqual(ctime, pytime)

        self.assertEqual(c_parse(2003).year, 2003)
        for x in (None, '', 'abc'):
            self.assertEqual(UNDEFINED_DATE, c_parse(x))
コード例 #2
0
ファイル: reading.py プロジェクト: ards/calibre
    def test_datetime(self):  # {{{
        ' Test the reading of datetimes stored in the db '
        from calibre.utils.date import parse_date
        from calibre.db.tables import c_parse, UNDEFINED_DATE, _c_speedup

        # First test parsing of string to UTC time
        for raw in ('2013-07-22 15:18:29+05:30', '  2013-07-22 15:18:29+00:00', '2013-07-22 15:18:29', '2003-09-21 23:30:00-06:00'):
            self.assertTrue(_c_speedup(raw))
            ctime = c_parse(raw)
            pytime = parse_date(raw, assume_utc=True)
            self.assertEqual(ctime, pytime)

        self.assertEqual(c_parse(2003).year, 2003)
        for x in (None, '', 'abc'):
            self.assertEqual(UNDEFINED_DATE, c_parse(x))
コード例 #3
0
 def get_custom_and_extra(self,
                          idx,
                          label=None,
                          num=None,
                          index_is_id=False):
     if label is not None:
         data = self.custom_column_label_map[label]
     if num is not None:
         data = self.custom_column_num_map[num]
     idx = idx if index_is_id else self.id(idx)
     row = self.data._data[idx]
     ans = row[self.FIELD_MAP[data['num']]]
     if data['is_multiple'] and data['datatype'] == 'text':
         ans = ans.split(
             data['multiple_seps']['cache_to_list']) if ans else []
         if data['display'].get('sort_alpha', False):
             ans.sort(key=lambda x: x.lower())
     if data['datatype'] == 'datetime' and isinstance(ans, string_or_bytes):
         from calibre.db.tables import c_parse, UNDEFINED_DATE
         ans = c_parse(ans)
         if ans is UNDEFINED_DATE:
             ans = None
     if data['datatype'] != 'series':
         return (ans, None)
     ign, lt = self.custom_table_names(data['num'])
     extra = self.conn.get('''SELECT extra FROM %s
                              WHERE book=?''' % lt, (idx, ),
                           all=False)
     return (ans, extra)
コード例 #4
0
ファイル: caches.py プロジェクト: mahendra-ramajayam/calibre
 def __init__(self, db, composites, datetimes, val, series_col, series_sort_col):
     from calibre.db.tables import c_parse
     self.db = db
     self._composites = composites
     for num in datetimes:
         val[num] = c_parse(val[num])
         if val[num] is UNDEFINED_DATE:
             val[num] = None
     list.__init__(self, val)
     self._must_do = len(composites) > 0
     self._series_col = series_col
     self._series_sort_col = series_sort_col
     self._series_sort = None
コード例 #5
0
 def get_custom(self, idx, label=None, num=None, index_is_id=False):
     if label is not None:
         data = self.custom_column_label_map[label]
     if num is not None:
         data = self.custom_column_num_map[num]
     row = self.data._data[idx] if index_is_id else self.data[idx]
     ans = row[self.FIELD_MAP[data['num']]]
     if data['is_multiple'] and data['datatype'] == 'text':
         ans = ans.split(data['multiple_seps']['cache_to_list']) if ans else []
         if data['display'].get('sort_alpha', False):
             ans.sort(key=lambda x:x.lower())
     if data['datatype'] == 'datetime' and isinstance(ans, string_or_bytes):
         from calibre.db.tables import c_parse, UNDEFINED_DATE
         ans = c_parse(ans)
         if ans is UNDEFINED_DATE:
             ans = None
     return ans
コード例 #6
0
ファイル: custom_columns.py プロジェクト: JimmXinu/calibre
 def get_custom(self, idx, label=None, num=None, index_is_id=False):
     if label is not None:
         data = self.custom_column_label_map[label]
     if num is not None:
         data = self.custom_column_num_map[num]
     row = self.data._data[idx] if index_is_id else self.data[idx]
     ans = row[self.FIELD_MAP[data['num']]]
     if data['is_multiple'] and data['datatype'] == 'text':
         ans = ans.split(data['multiple_seps']['cache_to_list']) if ans else []
         if data['display'].get('sort_alpha', False):
             ans.sort(key=lambda x:x.lower())
     if data['datatype'] == 'datetime' and isinstance(ans, string_or_bytes):
         from calibre.db.tables import c_parse, UNDEFINED_DATE
         ans = c_parse(ans)
         if ans is UNDEFINED_DATE:
             ans = None
     return ans
コード例 #7
0
ファイル: custom_columns.py プロジェクト: JimmXinu/calibre
 def get_custom_and_extra(self, idx, label=None, num=None, index_is_id=False):
     if label is not None:
         data = self.custom_column_label_map[label]
     if num is not None:
         data = self.custom_column_num_map[num]
     idx = idx if index_is_id else self.id(idx)
     row = self.data._data[idx]
     ans = row[self.FIELD_MAP[data['num']]]
     if data['is_multiple'] and data['datatype'] == 'text':
         ans = ans.split(data['multiple_seps']['cache_to_list']) if ans else []
         if data['display'].get('sort_alpha', False):
             ans.sort(key=lambda x: x.lower())
     if data['datatype'] == 'datetime' and isinstance(ans, string_or_bytes):
         from calibre.db.tables import c_parse, UNDEFINED_DATE
         ans = c_parse(ans)
         if ans is UNDEFINED_DATE:
             ans = None
     if data['datatype'] != 'series':
         return (ans, None)
     ign,lt = self.custom_table_names(data['num'])
     extra = self.conn.get('''SELECT extra FROM %s
                              WHERE book=?'''%lt, (idx,), all=False)
     return (ans, extra)