From fa97df5ac3b907f37dd43c4d8ac48eefc4535bbe Mon Sep 17 00:00:00 2001 From: "STATION\\MF" Date: Tue, 29 Sep 2020 16:27:32 -0400 Subject: [PATCH 1/3] feat: BASELINE for DB API Exceptions --- google/cloud/spanner_dbapi/connection.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/google/cloud/spanner_dbapi/connection.py b/google/cloud/spanner_dbapi/connection.py index 869586e363..af3afa7da1 100644 --- a/google/cloud/spanner_dbapi/connection.py +++ b/google/cloud/spanner_dbapi/connection.py @@ -38,9 +38,8 @@ def _raise_if_closed(self): raise InterfaceError("connection is already closed") def __handle_update_ddl(self, ddl_statements): - """ - Run the list of Data Definition Language (DDL) statements on the underlying - database. Each DDL statement MUST NOT contain a semicolon. + """Run the list of Data Definition Language (DDL) statements on the + underlying database. Each DDL statement MUST NOT contain a semicolon. Args: ddl_statements: a list of DDL statements, each without a semicolon. Returns: From da4d8b7e397982749f22dfc2566ef1723bb4e897 Mon Sep 17 00:00:00 2001 From: IlyaFaer Date: Wed, 30 Sep 2020 11:12:13 +0300 Subject: [PATCH 2/3] refactor: verify and comment the DB API exceptions --- google/cloud/spanner_dbapi/exceptions.py | 49 ++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/google/cloud/spanner_dbapi/exceptions.py b/google/cloud/spanner_dbapi/exceptions.py index a4e973b873..b21be2c949 100644 --- a/google/cloud/spanner_dbapi/exceptions.py +++ b/google/cloud/spanner_dbapi/exceptions.py @@ -4,42 +4,91 @@ # license that can be found in the LICENSE file or at # https://developers.google.com/open-source/licenses/bsd +"""Spanner DB API exceptions.""" + class Warning(Exception): + """Important DB API warning.""" + pass class Error(Exception): + """The base class for all the DB API exceptions. + + Does not include :class:`Warning`. + """ + pass class InterfaceError(Error): + """ + Error related to the database interface + rather than the database itself. + """ + pass class DatabaseError(Error): + """Error related to the database.""" + pass class DataError(DatabaseError): + """ + Error due to problems with the processed data like + division by zero, numeric value out of range, etc. + """ + pass class OperationalError(DatabaseError): + """ + Error related to the database's operation, e.g. an + unexpected disconnect, the data source name is not + found, a transaction could not be processed, a + memory allocation error, etc. + """ + pass class IntegrityError(DatabaseError): + """ + Error for cases of relational integrity of the database + is affected, e.g. a foreign key check fails. + """ + pass class InternalError(DatabaseError): + """ + Internal database error, e.g. the cursor is not valid + anymore, the transaction is out of sync, etc. + """ + pass class ProgrammingError(DatabaseError): + """ + Programming error, e.g. table not found or already + exists, syntax error in the SQL statement, wrong + number of parameters specified, etc. + """ + pass class NotSupportedError(DatabaseError): + """ + Error for case of a method or database API not + supported by the database was used. + """ + pass From d1af134b0065c3f95fd90296ef4ccee6faf11057 Mon Sep 17 00:00:00 2001 From: "STATION\\MF" Date: Wed, 30 Sep 2020 11:45:50 -0400 Subject: [PATCH 3/3] chore: format --- google/cloud/spanner_dbapi/exceptions.py | 31 +++++++++--------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/google/cloud/spanner_dbapi/exceptions.py b/google/cloud/spanner_dbapi/exceptions.py index b21be2c949..d285caad8f 100644 --- a/google/cloud/spanner_dbapi/exceptions.py +++ b/google/cloud/spanner_dbapi/exceptions.py @@ -4,7 +4,7 @@ # license that can be found in the LICENSE file or at # https://developers.google.com/open-source/licenses/bsd -"""Spanner DB API exceptions.""" +"""Spanner DB API exceptions listed in PEP-249.""" class Warning(Exception): @@ -23,8 +23,7 @@ class Error(Exception): class InterfaceError(Error): - """ - Error related to the database interface + """Error related to the database interface rather than the database itself. """ @@ -38,8 +37,7 @@ class DatabaseError(Error): class DataError(DatabaseError): - """ - Error due to problems with the processed data like + """Error due to problems with the processed data like division by zero, numeric value out of range, etc. """ @@ -47,19 +45,16 @@ class DataError(DatabaseError): class OperationalError(DatabaseError): - """ - Error related to the database's operation, e.g. an - unexpected disconnect, the data source name is not - found, a transaction could not be processed, a - memory allocation error, etc. + """Error related to the database's operation, e.g. an unexpected + disconnect, the data source name is not found, a transaction could not + be processed, a memory allocation error, etc. """ pass class IntegrityError(DatabaseError): - """ - Error for cases of relational integrity of the database + """Error for cases of relational integrity of the database is affected, e.g. a foreign key check fails. """ @@ -67,8 +62,7 @@ class IntegrityError(DatabaseError): class InternalError(DatabaseError): - """ - Internal database error, e.g. the cursor is not valid + """Internal database error, e.g. the cursor is not valid anymore, the transaction is out of sync, etc. """ @@ -76,18 +70,15 @@ class InternalError(DatabaseError): class ProgrammingError(DatabaseError): - """ - Programming error, e.g. table not found or already - exists, syntax error in the SQL statement, wrong - number of parameters specified, etc. + """Programming error, e.g. table not found or already exists, syntax + error in the SQL statement, wrong number of parameters specified, etc. """ pass class NotSupportedError(DatabaseError): - """ - Error for case of a method or database API not + """Error for case of a method or database API not supported by the database was used. """