mirror of
				https://github.com/simon987/hexlib.git
				synced 2025-10-25 14:06:54 +00:00 
			
		
		
		
	bugfix
This commit is contained in:
		
							parent
							
								
									1de2bf81cd
								
							
						
					
					
						commit
						3357da764c
					
				
							
								
								
									
										18
									
								
								hexlib/db.py
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								hexlib/db.py
									
									
									
									
									
								
							| @ -44,22 +44,24 @@ class Table: | |||||||
|             conn.row_factory = sqlite3.Row |             conn.row_factory = sqlite3.Row | ||||||
| 
 | 
 | ||||||
|             sql = "INSERT INTO %s (id,%s) VALUES ('%s',%s)" % \ |             sql = "INSERT INTO %s (id,%s) VALUES ('%s',%s)" % \ | ||||||
|                   (self._table, ",".join(value.keys()), key, ",".join(_sqlite_value(v) for v in value.values())) |                   (self._table, ",".join(value.keys()), key, ",".join("?" for _ in value.values())) | ||||||
| 
 |  | ||||||
|             try: |             try: | ||||||
|                 conn.execute(sql) |                 conn.execute(sql, list(_sqlite_value(v) for v in value.values())) | ||||||
|             except sqlite3.OperationalError: |             except sqlite3.OperationalError: | ||||||
|                 conn.execute( |                 conn.execute( | ||||||
|                     "create table if not exists %s (id text primary key,%s)" % |                     "create table if not exists %s (id text primary key,%s)" % | ||||||
|                     (self._table, ",".join("%s %s" % (k, _sqlite_type(v)) for k, v in value.items())) |                     (self._table, ",".join("%s %s" % (k, _sqlite_type(v)) for k, v in value.items())) | ||||||
|                 ) |                 ) | ||||||
|                 conn.execute(sql) |                 conn.execute(sql, list(_sqlite_value(v) for v in value.values())) | ||||||
| 
 | 
 | ||||||
|             except sqlite3.IntegrityError: |             except sqlite3.IntegrityError: | ||||||
|  |                 sql = "UPDATE %s SET (%s) = (%s) WHERE id=?" \ | ||||||
|  |                       % (self._table, ",".join(value.keys()), ",".join("?" for _ in value.values())) | ||||||
|  |                 args = [key] | ||||||
|  |                 args.extend(_sqlite_value(v) for v in value.values()) | ||||||
|                 conn.execute( |                 conn.execute( | ||||||
|                     "UPDATE %s SET (%s) = (%s) WHERE id=?" % |                     sql, | ||||||
|                     (self._table, ",".join(value.keys()), ",".join(_sqlite_value(v) for v in value.values())), |                     args | ||||||
|                     (key,) |  | ||||||
|                 ) |                 ) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -74,8 +76,6 @@ def _sqlite_type(value): | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def _sqlite_value(value): | def _sqlite_value(value): | ||||||
|     if isinstance(value, str): |  | ||||||
|         return '"%s"' % value |  | ||||||
|     if isinstance(value, bytes): |     if isinstance(value, bytes): | ||||||
|         return _sqlite_value(value.decode("unicode_escape")) |         return _sqlite_value(value.decode("unicode_escape")) | ||||||
|     return str(value) |     return str(value) | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								setup.py
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								setup.py
									
									
									
									
									
								
							| @ -2,7 +2,7 @@ from setuptools import setup | |||||||
| 
 | 
 | ||||||
| setup( | setup( | ||||||
|     name="hexlib", |     name="hexlib", | ||||||
|     version="1.3", |     version="1.4", | ||||||
|     description="Misc utility methods", |     description="Misc utility methods", | ||||||
|     author="simon987", |     author="simon987", | ||||||
|     author_email="me@simon987.net", |     author_email="me@simon987.net", | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user