#-*- coding: ISO-8859-1 -*-

# pysqlite2/dbapi2.py: the DB-API 2.0 interface

#

# Copyright (C) 2004-2005 Gerhard Hring <gh@ghaering.de>

#

# This file is part of pysqlite.

#

# This software is provided 'as-is', without any express or implied

# warranty.  In no event will the authors be held liable for any damages

# arising from the use of this software.

#

# Permission is granted to anyone to use this software for any purpose,

# including commercial applications, and to alter it and redistribute it

# freely, subject to the following restrictions:

#

# 1. The origin of this software must not be misrepresented; you must not

#    claim that you wrote the original software. If you use this software

#    in a product, an acknowledgment in the product documentation would be

#    appreciated but is not required.

# 2. Altered source versions must be plainly marked as such, and must not be

#    misrepresented as being the original software.

# 3. This notice may not be removed or altered from any source distribution.



import datetime

import time



from _sqlite3 import *



paramstyle = "qmark"



threadsafety = 1



apilevel = "2.0"



Date = datetime.date



Time = datetime.time



Timestamp = datetime.datetime



def DateFromTicks(ticks):

    return Date(*time.localtime(ticks)[:3])



def TimeFromTicks(ticks):

    return Time(*time.localtime(ticks)[3:6])



def TimestampFromTicks(ticks):

    return Timestamp(*time.localtime(ticks)[:6])



version_info = tuple([int(x) for x in version.split(".")])

sqlite_version_info = tuple([int(x) for x in sqlite_version.split(".")])



Binary = buffer



def register_adapters_and_converters():

    def adapt_date(val):

        return val.isoformat()



    def adapt_datetime(val):

        return val.isoformat(" ")



    def convert_date(val):

        return datetime.date(*map(int, val.split("-")))



    def convert_timestamp(val):

        datepart, timepart = val.split(" ")

        year, month, day = map(int, datepart.split("-"))

        timepart_full = timepart.split(".")

        hours, minutes, seconds = map(int, timepart_full[0].split(":"))

        if len(timepart_full) == 2:

            microseconds = int(timepart_full[1])

        else:

            microseconds = 0



        val = datetime.datetime(year, month, day, hours, minutes, seconds, microseconds)

        return val





    register_adapter(datetime.date, adapt_date)

    register_adapter(datetime.datetime, adapt_datetime)

    register_converter("date", convert_date)

    register_converter("timestamp", convert_timestamp)



register_adapters_and_converters()



# Clean up namespace



del(register_adapters_and_converters)

