Improve pylint to 10.0

This commit is contained in:
kulath 2016-08-01 17:37:26 +01:00
parent 3461316067
commit fcf1c1d13b

View File

@ -18,19 +18,35 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import os
"""
Backend for sqlite database.
"""
#-------------------------------------------------------------------------
#
# standard python modules
#
#-------------------------------------------------------------------------
import sqlite3
import logging
import re
sqlite3.paramstyle = 'qmark'
#-------------------------------------------------------------------------
#
# Sqlite class
#
#-------------------------------------------------------------------------
class Sqlite:
"""
The Sqlite class is an interface between the DBAPI class which is the Gramps
backend for the DBAPI interface and the sqlite3 python module.
"""
@classmethod
def get_summary(cls):
"""
Return a diction of information about this database
backend.
Return a dictionary of information about this database backend.
"""
summary = {
"DB-API version": "2.0",
@ -43,6 +59,18 @@ class Sqlite:
return summary
def __init__(self, *args, **kwargs):
"""
Create a new Sqlite instance.
This connects to a sqlite3 database and creates a cursor instance.
:param args: arguments to be passed to the sqlite3 connect class at
creation.
:type args: list
:param kwargs: arguments to be passed to the sqlite3 connect class at
creation.
:type kwargs: list
"""
self.log = logging.getLogger(".sqlite")
self.connection = sqlite3.connect(*args, **kwargs)
self.cursor = self.connection.cursor()
@ -50,35 +78,84 @@ class Sqlite:
self.connection.create_function("regexp", 2, regexp)
def execute(self, *args, **kwargs):
"""
Executes an SQL statement.
:param args: arguments to be passed to the sqlite3 execute statement
:type args: list
:param kwargs: arguments to be passed to the sqlite3 execute statement
:type kwargs: list
"""
self.log.debug(args)
self.cursor.execute(*args, **kwargs)
def fetchone(self):
"""
Fetches the next row of a query result set, returning a single sequence,
or None when no more data is available.
"""
return self.cursor.fetchone()
def fetchall(self):
"""
Fetches the next set of rows of a query result, returning a list. An
empty list is returned when no more rows are available.
"""
return self.cursor.fetchall()
def begin(self):
"""
Start a transaction manually. This transactions usually persist until
the next COMMIT or ROLLBACK command.
"""
self.log.debug("BEGIN TRANSACTION;")
self.execute("BEGIN TRANSACTION;")
def commit(self):
"""
Commit the current transaction.
"""
self.log.debug("COMMIT;")
self.connection.commit()
def rollback(self):
"""
Roll back any changes to the database since the last call to commit().
"""
self.log.debug("ROLLBACK;")
self.connection.rollback()
def table_exists(self, table):
"""
Test whether the specified SQL database table exists.
:param table: table name to check.
:type table: str
:returns: True if the table exists, false otherwise.
:rtype: bool
"""
self.execute("SELECT COUNT(*) FROM sqlite_master "
"WHERE type='table' AND name='%s';" % table)
return self.fetchone()[0] != 0
def close(self):
"""
Close the current database.
"""
self.log.debug("closing database...")
self.connection.close()
def regexp(expr, value):
"""
A user defined function that can be called from within an SQL statement.
This function has two parameters.
:param expr: pattern to look for.
:type expr: str
:param value: the string to search.
:type value: list
:returns: True if the expr exists within the value, false otherwise.
:rtype: bool
"""
return re.search(expr, value, re.MULTILINE) is not None