SP/web2py/gluon/packages/dal/pydal/parsers/sqlite.py
Saturneic 064f602b1a Add.
2018-10-25 23:33:13 +08:00

34 lines
1.0 KiB
Python

from datetime import datetime, date
from decimal import Decimal
from ..adapters.sqlite import SQLite
from .base import ListsParser, DateParser, TimeParser, DateTimeParser, \
JSONParser
from . import parsers, for_type, before_parse
@parsers.register_for(SQLite)
class SQLiteParser(
ListsParser, DateParser, TimeParser, DateTimeParser, JSONParser
):
@before_parse('decimal')
def decimal_extras(self, field_type):
return {'decimals': field_type[8:-1].split(',')[-1]}
@for_type('decimal')
def _decimal(self, value, decimals):
value = ('%.' + decimals + 'f') % value
return Decimal(value)
@for_type('date')
def _date(self, value):
if not isinstance(value, date):
return DateParser._declared_parsers_['_date'].f(self, value)
return value
@for_type('datetime')
def _datetime(self, value):
if not isinstance(value, datetime):
return DateTimeParser._declared_parsers_['_datetime'].f(
self, value)
return value