| 
									
										
										
										
											2006-04-01 00:57:31 +00:00
										 |  |  |  | #-*- coding: ISO-8859-1 -*- | 
					
						
							|  |  |  |  | # pysqlite2/dbapi2.py: the DB-API 2.0 interface | 
					
						
							|  |  |  |  | # | 
					
						
							|  |  |  |  | # Copyright (C) 2004-2005 Gerhard H<>ring <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 | 
					
						
							| 
									
										
										
										
											2006-04-23 15:24:26 +00:00
										 |  |  |  | import time | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | from _sqlite3 import * | 
					
						
							| 
									
										
										
										
											2006-04-01 00:57:31 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | paramstyle = "qmark" | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | threadsafety = 1 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | apilevel = "2.0" | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | Date = datetime.date | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | Time = datetime.time | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | Timestamp = datetime.datetime | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | def DateFromTicks(ticks): | 
					
						
							| 
									
										
										
										
											2006-04-23 15:24:26 +00:00
										 |  |  |  |     return apply(Date, time.localtime(ticks)[:3]) | 
					
						
							| 
									
										
										
										
											2006-04-01 00:57:31 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | def TimeFromTicks(ticks): | 
					
						
							| 
									
										
										
										
											2006-04-23 15:24:26 +00:00
										 |  |  |  |     return apply(Time, time.localtime(ticks)[3:6]) | 
					
						
							| 
									
										
										
										
											2006-04-01 00:57:31 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | def TimestampFromTicks(ticks): | 
					
						
							| 
									
										
										
										
											2006-04-23 15:24:26 +00:00
										 |  |  |  |     return apply(Timestamp, time.localtime(ticks)[:6]) | 
					
						
							| 
									
										
										
										
											2006-04-01 00:57:31 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-23 15:24:26 +00:00
										 |  |  |  | version_info = tuple([int(x) for x in version.split(".")]) | 
					
						
							|  |  |  |  | sqlite_version_info = tuple([int(x) for x in sqlite_version.split(".")]) | 
					
						
							| 
									
										
										
										
											2006-04-01 00:57:31 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | Binary = buffer | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-23 15:24:26 +00:00
										 |  |  |  | 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: | 
					
						
							| 
									
										
										
										
											2007-01-14 01:43:50 +00:00
										 |  |  |  |             microseconds = int(timepart_full[1]) | 
					
						
							| 
									
										
										
										
											2006-04-23 15:24:26 +00:00
										 |  |  |  |         else: | 
					
						
							|  |  |  |  |             microseconds = 0 | 
					
						
							| 
									
										
										
										
											2006-04-01 00:57:31 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-23 15:24:26 +00:00
										 |  |  |  |         val = datetime.datetime(year, month, day, hours, minutes, seconds, microseconds) | 
					
						
							|  |  |  |  |         return val | 
					
						
							| 
									
										
										
										
											2006-04-01 00:57:31 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-23 15:24:26 +00:00
										 |  |  |  |     register_adapter(datetime.date, adapt_date) | 
					
						
							|  |  |  |  |     register_adapter(datetime.datetime, adapt_datetime) | 
					
						
							|  |  |  |  |     register_converter("date", convert_date) | 
					
						
							|  |  |  |  |     register_converter("timestamp", convert_timestamp) | 
					
						
							| 
									
										
										
										
											2006-04-01 00:57:31 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-23 15:24:26 +00:00
										 |  |  |  | register_adapters_and_converters() | 
					
						
							| 
									
										
										
										
											2006-04-01 00:57:31 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-23 15:24:26 +00:00
										 |  |  |  | # Clean up namespace | 
					
						
							| 
									
										
										
										
											2006-04-01 00:57:31 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-04-23 15:24:26 +00:00
										 |  |  |  | del(register_adapters_and_converters) |