mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 18:28:49 +00:00 
			
		
		
		
	 287b84de93
			
		
	
	
		287b84de93
		
	
	
	
	
		
			
			The sqlit3.Connection object doesn't call its close() method when it's used as a context manager.
		
			
				
	
	
		
			26 lines
		
	
	
	
		
			565 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			565 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| import sqlite3
 | |
| 
 | |
| class IterChars:
 | |
|     def __init__(self):
 | |
|         self.count = ord('a')
 | |
| 
 | |
|     def __iter__(self):
 | |
|         return self
 | |
| 
 | |
|     def __next__(self):
 | |
|         if self.count > ord('z'):
 | |
|             raise StopIteration
 | |
|         self.count += 1
 | |
|         return (chr(self.count - 1),) # this is a 1-tuple
 | |
| 
 | |
| con = sqlite3.connect(":memory:")
 | |
| cur = con.cursor()
 | |
| cur.execute("create table characters(c)")
 | |
| 
 | |
| theIter = IterChars()
 | |
| cur.executemany("insert into characters(c) values (?)", theIter)
 | |
| 
 | |
| cur.execute("select c from characters")
 | |
| print(cur.fetchall())
 | |
| 
 | |
| con.close()
 |