]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
More regular and compact auto-generated exceptions
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sat, 12 Feb 2022 17:55:09 +0000 (18:55 +0100)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sat, 12 Feb 2022 18:55:15 +0000 (19:55 +0100)
Also drop unneeded flake8 config file.

psycopg/.flake8 [deleted file]
psycopg/psycopg/errors.py
psycopg/tox.ini
tools/update_errors.py
tox.ini

diff --git a/psycopg/.flake8 b/psycopg/.flake8
deleted file mode 100644 (file)
index 8721147..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# Used for Vim ALE integration, which doesn't honur the top-level config file
-[flake8]
-per-file-ignores =
-    psycopg/__init__.py: F401
index af164b1bcaa9b0de4bd36c7e3d2b12c71aee343e..d23ce7506422d0f68d9537ae23bb367bcc4a39d3 100644 (file)
@@ -356,1388 +356,1134 @@ _base_exc_map = {
 }
 
 
-# Classes generated by tools/update_errors.py
+# Error classes generated by tools/update_errors.py
+
+# fmt: off
 # autogenerated: start
 
-# Class 02 - No Data (this is also a warning class per the SQL standard)
 
+# Class 02 - No Data (this is also a warning class per the SQL standard)
 
-class NoData(DatabaseError, code="02000", name="NO_DATA"):
+class NoData(DatabaseError,
+    code='02000', name='NO_DATA'):
     pass
 
-
-class NoAdditionalDynamicResultSetsReturned(
-    DatabaseError, code="02001", name="NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED"
-):
+class NoAdditionalDynamicResultSetsReturned(DatabaseError,
+    code='02001', name='NO_ADDITIONAL_DYNAMIC_RESULT_SETS_RETURNED'):
     pass
 
 
 # Class 03 - SQL Statement Not Yet Complete
 
-
-class SqlStatementNotYetComplete(
-    DatabaseError, code="03000", name="SQL_STATEMENT_NOT_YET_COMPLETE"
-):
+class SqlStatementNotYetComplete(DatabaseError,
+    code='03000', name='SQL_STATEMENT_NOT_YET_COMPLETE'):
     pass
 
 
 # Class 08 - Connection Exception
 
-
-class ConnectionException(OperationalError, code="08000", name="CONNECTION_EXCEPTION"):
+class ConnectionException(OperationalError,
+    code='08000', name='CONNECTION_EXCEPTION'):
     pass
 
-
-class SqlclientUnableToEstablishSqlconnection(
-    OperationalError, code="08001", name="SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION"
-):
+class SqlclientUnableToEstablishSqlconnection(OperationalError,
+    code='08001', name='SQLCLIENT_UNABLE_TO_ESTABLISH_SQLCONNECTION'):
     pass
 
-
-class ConnectionDoesNotExist(
-    OperationalError, code="08003", name="CONNECTION_DOES_NOT_EXIST"
-):
+class ConnectionDoesNotExist(OperationalError,
+    code='08003', name='CONNECTION_DOES_NOT_EXIST'):
     pass
 
-
-class SqlserverRejectedEstablishmentOfSqlconnection(
-    OperationalError,
-    code="08004",
-    name="SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION",
-):
+class SqlserverRejectedEstablishmentOfSqlconnection(OperationalError,
+    code='08004', name='SQLSERVER_REJECTED_ESTABLISHMENT_OF_SQLCONNECTION'):
     pass
 
-
-class ConnectionFailure(OperationalError, code="08006", name="CONNECTION_FAILURE"):
+class ConnectionFailure(OperationalError,
+    code='08006', name='CONNECTION_FAILURE'):
     pass
 
-
-class TransactionResolutionUnknown(
-    OperationalError, code="08007", name="TRANSACTION_RESOLUTION_UNKNOWN"
-):
+class TransactionResolutionUnknown(OperationalError,
+    code='08007', name='TRANSACTION_RESOLUTION_UNKNOWN'):
     pass
 
-
-class ProtocolViolation(OperationalError, code="08P01", name="PROTOCOL_VIOLATION"):
+class ProtocolViolation(OperationalError,
+    code='08P01', name='PROTOCOL_VIOLATION'):
     pass
 
 
 # Class 09 - Triggered Action Exception
 
-
-class TriggeredActionException(
-    DatabaseError, code="09000", name="TRIGGERED_ACTION_EXCEPTION"
-):
+class TriggeredActionException(DatabaseError,
+    code='09000', name='TRIGGERED_ACTION_EXCEPTION'):
     pass
 
 
 # Class 0A - Feature Not Supported
 
-
-class FeatureNotSupported(
-    NotSupportedError, code="0A000", name="FEATURE_NOT_SUPPORTED"
-):
+class FeatureNotSupported(NotSupportedError,
+    code='0A000', name='FEATURE_NOT_SUPPORTED'):
     pass
 
 
 # Class 0B - Invalid Transaction Initiation
 
-
-class InvalidTransactionInitiation(
-    DatabaseError, code="0B000", name="INVALID_TRANSACTION_INITIATION"
-):
+class InvalidTransactionInitiation(DatabaseError,
+    code='0B000', name='INVALID_TRANSACTION_INITIATION'):
     pass
 
 
 # Class 0F - Locator Exception
 
-
-class LocatorException(DatabaseError, code="0F000", name="LOCATOR_EXCEPTION"):
+class LocatorException(DatabaseError,
+    code='0F000', name='LOCATOR_EXCEPTION'):
     pass
 
-
-class InvalidLocatorSpecification(
-    DatabaseError, code="0F001", name="INVALID_LOCATOR_SPECIFICATION"
-):
+class InvalidLocatorSpecification(DatabaseError,
+    code='0F001', name='INVALID_LOCATOR_SPECIFICATION'):
     pass
 
 
 # Class 0L - Invalid Grantor
 
-
-class InvalidGrantor(DatabaseError, code="0L000", name="INVALID_GRANTOR"):
+class InvalidGrantor(DatabaseError,
+    code='0L000', name='INVALID_GRANTOR'):
     pass
 
-
-class InvalidGrantOperation(
-    DatabaseError, code="0LP01", name="INVALID_GRANT_OPERATION"
-):
+class InvalidGrantOperation(DatabaseError,
+    code='0LP01', name='INVALID_GRANT_OPERATION'):
     pass
 
 
 # Class 0P - Invalid Role Specification
 
-
-class InvalidRoleSpecification(
-    DatabaseError, code="0P000", name="INVALID_ROLE_SPECIFICATION"
-):
+class InvalidRoleSpecification(DatabaseError,
+    code='0P000', name='INVALID_ROLE_SPECIFICATION'):
     pass
 
 
 # Class 0Z - Diagnostics Exception
 
-
-class DiagnosticsException(DatabaseError, code="0Z000", name="DIAGNOSTICS_EXCEPTION"):
+class DiagnosticsException(DatabaseError,
+    code='0Z000', name='DIAGNOSTICS_EXCEPTION'):
     pass
 
-
-class StackedDiagnosticsAccessedWithoutActiveHandler(
-    DatabaseError,
-    code="0Z002",
-    name="STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER",
-):
+class StackedDiagnosticsAccessedWithoutActiveHandler(DatabaseError,
+    code='0Z002', name='STACKED_DIAGNOSTICS_ACCESSED_WITHOUT_ACTIVE_HANDLER'):
     pass
 
 
 # Class 20 - Case Not Found
 
-
-class CaseNotFound(ProgrammingError, code="20000", name="CASE_NOT_FOUND"):
+class CaseNotFound(ProgrammingError,
+    code='20000', name='CASE_NOT_FOUND'):
     pass
 
 
 # Class 21 - Cardinality Violation
 
-
-class CardinalityViolation(
-    ProgrammingError, code="21000", name="CARDINALITY_VIOLATION"
-):
+class CardinalityViolation(ProgrammingError,
+    code='21000', name='CARDINALITY_VIOLATION'):
     pass
 
 
 # Class 22 - Data Exception
 
-
-class DataException(DataError, code="22000", name="DATA_EXCEPTION"):
+class DataException(DataError,
+    code='22000', name='DATA_EXCEPTION'):
     pass
 
-
-class StringDataRightTruncation(
-    DataError, code="22001", name="STRING_DATA_RIGHT_TRUNCATION"
-):
+class StringDataRightTruncation(DataError,
+    code='22001', name='STRING_DATA_RIGHT_TRUNCATION'):
     pass
 
-
-class NullValueNoIndicatorParameter(
-    DataError, code="22002", name="NULL_VALUE_NO_INDICATOR_PARAMETER"
-):
+class NullValueNoIndicatorParameter(DataError,
+    code='22002', name='NULL_VALUE_NO_INDICATOR_PARAMETER'):
     pass
 
-
-class NumericValueOutOfRange(
-    DataError, code="22003", name="NUMERIC_VALUE_OUT_OF_RANGE"
-):
+class NumericValueOutOfRange(DataError,
+    code='22003', name='NUMERIC_VALUE_OUT_OF_RANGE'):
     pass
 
-
-class NullValueNotAllowed(DataError, code="22004", name="NULL_VALUE_NOT_ALLOWED"):
+class NullValueNotAllowed(DataError,
+    code='22004', name='NULL_VALUE_NOT_ALLOWED'):
     pass
 
-
-class ErrorInAssignment(DataError, code="22005", name="ERROR_IN_ASSIGNMENT"):
+class ErrorInAssignment(DataError,
+    code='22005', name='ERROR_IN_ASSIGNMENT'):
     pass
 
-
-class InvalidDatetimeFormat(DataError, code="22007", name="INVALID_DATETIME_FORMAT"):
+class InvalidDatetimeFormat(DataError,
+    code='22007', name='INVALID_DATETIME_FORMAT'):
     pass
 
-
-class DatetimeFieldOverflow(DataError, code="22008", name="DATETIME_FIELD_OVERFLOW"):
+class DatetimeFieldOverflow(DataError,
+    code='22008', name='DATETIME_FIELD_OVERFLOW'):
     pass
 
-
-class InvalidTimeZoneDisplacementValue(
-    DataError, code="22009", name="INVALID_TIME_ZONE_DISPLACEMENT_VALUE"
-):
+class InvalidTimeZoneDisplacementValue(DataError,
+    code='22009', name='INVALID_TIME_ZONE_DISPLACEMENT_VALUE'):
     pass
 
-
-class EscapeCharacterConflict(
-    DataError, code="2200B", name="ESCAPE_CHARACTER_CONFLICT"
-):
+class EscapeCharacterConflict(DataError,
+    code='2200B', name='ESCAPE_CHARACTER_CONFLICT'):
     pass
 
-
-class InvalidUseOfEscapeCharacter(
-    DataError, code="2200C", name="INVALID_USE_OF_ESCAPE_CHARACTER"
-):
+class InvalidUseOfEscapeCharacter(DataError,
+    code='2200C', name='INVALID_USE_OF_ESCAPE_CHARACTER'):
     pass
 
-
-class InvalidEscapeOctet(DataError, code="2200D", name="INVALID_ESCAPE_OCTET"):
+class InvalidEscapeOctet(DataError,
+    code='2200D', name='INVALID_ESCAPE_OCTET'):
     pass
 
-
-class ZeroLengthCharacterString(
-    DataError, code="2200F", name="ZERO_LENGTH_CHARACTER_STRING"
-):
+class ZeroLengthCharacterString(DataError,
+    code='2200F', name='ZERO_LENGTH_CHARACTER_STRING'):
     pass
 
-
-class MostSpecificTypeMismatch(
-    DataError, code="2200G", name="MOST_SPECIFIC_TYPE_MISMATCH"
-):
+class MostSpecificTypeMismatch(DataError,
+    code='2200G', name='MOST_SPECIFIC_TYPE_MISMATCH'):
     pass
 
-
-class SequenceGeneratorLimitExceeded(
-    DataError, code="2200H", name="SEQUENCE_GENERATOR_LIMIT_EXCEEDED"
-):
+class SequenceGeneratorLimitExceeded(DataError,
+    code='2200H', name='SEQUENCE_GENERATOR_LIMIT_EXCEEDED'):
     pass
 
-
-class NotAnXmlDocument(DataError, code="2200L", name="NOT_AN_XML_DOCUMENT"):
+class NotAnXmlDocument(DataError,
+    code='2200L', name='NOT_AN_XML_DOCUMENT'):
     pass
 
-
-class InvalidXmlDocument(DataError, code="2200M", name="INVALID_XML_DOCUMENT"):
+class InvalidXmlDocument(DataError,
+    code='2200M', name='INVALID_XML_DOCUMENT'):
     pass
 
-
-class InvalidXmlContent(DataError, code="2200N", name="INVALID_XML_CONTENT"):
+class InvalidXmlContent(DataError,
+    code='2200N', name='INVALID_XML_CONTENT'):
     pass
 
-
-class InvalidXmlComment(DataError, code="2200S", name="INVALID_XML_COMMENT"):
+class InvalidXmlComment(DataError,
+    code='2200S', name='INVALID_XML_COMMENT'):
     pass
 
-
-class InvalidXmlProcessingInstruction(
-    DataError, code="2200T", name="INVALID_XML_PROCESSING_INSTRUCTION"
-):
+class InvalidXmlProcessingInstruction(DataError,
+    code='2200T', name='INVALID_XML_PROCESSING_INSTRUCTION'):
     pass
 
-
-class InvalidIndicatorParameterValue(
-    DataError, code="22010", name="INVALID_INDICATOR_PARAMETER_VALUE"
-):
+class InvalidIndicatorParameterValue(DataError,
+    code='22010', name='INVALID_INDICATOR_PARAMETER_VALUE'):
     pass
 
-
-class SubstringError(DataError, code="22011", name="SUBSTRING_ERROR"):
+class SubstringError(DataError,
+    code='22011', name='SUBSTRING_ERROR'):
     pass
 
-
-class DivisionByZero(DataError, code="22012", name="DIVISION_BY_ZERO"):
+class DivisionByZero(DataError,
+    code='22012', name='DIVISION_BY_ZERO'):
     pass
 
-
-class InvalidPrecedingOrFollowingSize(
-    DataError, code="22013", name="INVALID_PRECEDING_OR_FOLLOWING_SIZE"
-):
+class InvalidPrecedingOrFollowingSize(DataError,
+    code='22013', name='INVALID_PRECEDING_OR_FOLLOWING_SIZE'):
     pass
 
-
-class InvalidArgumentForNtileFunction(
-    DataError, code="22014", name="INVALID_ARGUMENT_FOR_NTILE_FUNCTION"
-):
+class InvalidArgumentForNtileFunction(DataError,
+    code='22014', name='INVALID_ARGUMENT_FOR_NTILE_FUNCTION'):
     pass
 
-
-class IntervalFieldOverflow(DataError, code="22015", name="INTERVAL_FIELD_OVERFLOW"):
+class IntervalFieldOverflow(DataError,
+    code='22015', name='INTERVAL_FIELD_OVERFLOW'):
     pass
 
-
-class InvalidArgumentForNthValueFunction(
-    DataError, code="22016", name="INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION"
-):
+class InvalidArgumentForNthValueFunction(DataError,
+    code='22016', name='INVALID_ARGUMENT_FOR_NTH_VALUE_FUNCTION'):
     pass
 
-
-class InvalidCharacterValueForCast(
-    DataError, code="22018", name="INVALID_CHARACTER_VALUE_FOR_CAST"
-):
+class InvalidCharacterValueForCast(DataError,
+    code='22018', name='INVALID_CHARACTER_VALUE_FOR_CAST'):
     pass
 
-
-class InvalidEscapeCharacter(DataError, code="22019", name="INVALID_ESCAPE_CHARACTER"):
+class InvalidEscapeCharacter(DataError,
+    code='22019', name='INVALID_ESCAPE_CHARACTER'):
     pass
 
-
-class InvalidRegularExpression(
-    DataError, code="2201B", name="INVALID_REGULAR_EXPRESSION"
-):
+class InvalidRegularExpression(DataError,
+    code='2201B', name='INVALID_REGULAR_EXPRESSION'):
     pass
 
-
-class InvalidArgumentForLogarithm(
-    DataError, code="2201E", name="INVALID_ARGUMENT_FOR_LOGARITHM"
-):
+class InvalidArgumentForLogarithm(DataError,
+    code='2201E', name='INVALID_ARGUMENT_FOR_LOGARITHM'):
     pass
 
-
-class InvalidArgumentForPowerFunction(
-    DataError, code="2201F", name="INVALID_ARGUMENT_FOR_POWER_FUNCTION"
-):
+class InvalidArgumentForPowerFunction(DataError,
+    code='2201F', name='INVALID_ARGUMENT_FOR_POWER_FUNCTION'):
     pass
 
-
-class InvalidArgumentForWidthBucketFunction(
-    DataError, code="2201G", name="INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION"
-):
+class InvalidArgumentForWidthBucketFunction(DataError,
+    code='2201G', name='INVALID_ARGUMENT_FOR_WIDTH_BUCKET_FUNCTION'):
     pass
 
-
-class InvalidRowCountInLimitClause(
-    DataError, code="2201W", name="INVALID_ROW_COUNT_IN_LIMIT_CLAUSE"
-):
+class InvalidRowCountInLimitClause(DataError,
+    code='2201W', name='INVALID_ROW_COUNT_IN_LIMIT_CLAUSE'):
     pass
 
-
-class InvalidRowCountInResultOffsetClause(
-    DataError, code="2201X", name="INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE"
-):
+class InvalidRowCountInResultOffsetClause(DataError,
+    code='2201X', name='INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE'):
     pass
 
-
-class CharacterNotInRepertoire(
-    DataError, code="22021", name="CHARACTER_NOT_IN_REPERTOIRE"
-):
+class CharacterNotInRepertoire(DataError,
+    code='22021', name='CHARACTER_NOT_IN_REPERTOIRE'):
     pass
 
-
-class IndicatorOverflow(DataError, code="22022", name="INDICATOR_OVERFLOW"):
+class IndicatorOverflow(DataError,
+    code='22022', name='INDICATOR_OVERFLOW'):
     pass
 
-
-class InvalidParameterValue(DataError, code="22023", name="INVALID_PARAMETER_VALUE"):
+class InvalidParameterValue(DataError,
+    code='22023', name='INVALID_PARAMETER_VALUE'):
     pass
 
-
-class UnterminatedCString(DataError, code="22024", name="UNTERMINATED_C_STRING"):
+class UnterminatedCString(DataError,
+    code='22024', name='UNTERMINATED_C_STRING'):
     pass
 
-
-class InvalidEscapeSequence(DataError, code="22025", name="INVALID_ESCAPE_SEQUENCE"):
+class InvalidEscapeSequence(DataError,
+    code='22025', name='INVALID_ESCAPE_SEQUENCE'):
     pass
 
-
-class StringDataLengthMismatch(
-    DataError, code="22026", name="STRING_DATA_LENGTH_MISMATCH"
-):
+class StringDataLengthMismatch(DataError,
+    code='22026', name='STRING_DATA_LENGTH_MISMATCH'):
     pass
 
-
-class TrimError(DataError, code="22027", name="TRIM_ERROR"):
+class TrimError(DataError,
+    code='22027', name='TRIM_ERROR'):
     pass
 
-
-class ArraySubscriptError(DataError, code="2202E", name="ARRAY_SUBSCRIPT_ERROR"):
+class ArraySubscriptError(DataError,
+    code='2202E', name='ARRAY_SUBSCRIPT_ERROR'):
     pass
 
-
-class InvalidTablesampleRepeat(
-    DataError, code="2202G", name="INVALID_TABLESAMPLE_REPEAT"
-):
+class InvalidTablesampleRepeat(DataError,
+    code='2202G', name='INVALID_TABLESAMPLE_REPEAT'):
     pass
 
-
-class InvalidTablesampleArgument(
-    DataError, code="2202H", name="INVALID_TABLESAMPLE_ARGUMENT"
-):
+class InvalidTablesampleArgument(DataError,
+    code='2202H', name='INVALID_TABLESAMPLE_ARGUMENT'):
     pass
 
-
-class DuplicateJsonObjectKeyValue(
-    DataError, code="22030", name="DUPLICATE_JSON_OBJECT_KEY_VALUE"
-):
+class DuplicateJsonObjectKeyValue(DataError,
+    code='22030', name='DUPLICATE_JSON_OBJECT_KEY_VALUE'):
     pass
 
-
-class InvalidArgumentForSqlJsonDatetimeFunction(
-    DataError, code="22031", name="INVALID_ARGUMENT_FOR_SQL_JSON_DATETIME_FUNCTION"
-):
+class InvalidArgumentForSqlJsonDatetimeFunction(DataError,
+    code='22031', name='INVALID_ARGUMENT_FOR_SQL_JSON_DATETIME_FUNCTION'):
     pass
 
-
-class InvalidJsonText(DataError, code="22032", name="INVALID_JSON_TEXT"):
+class InvalidJsonText(DataError,
+    code='22032', name='INVALID_JSON_TEXT'):
     pass
 
-
-class InvalidSqlJsonSubscript(
-    DataError, code="22033", name="INVALID_SQL_JSON_SUBSCRIPT"
-):
+class InvalidSqlJsonSubscript(DataError,
+    code='22033', name='INVALID_SQL_JSON_SUBSCRIPT'):
     pass
 
-
-class MoreThanOneSqlJsonItem(
-    DataError, code="22034", name="MORE_THAN_ONE_SQL_JSON_ITEM"
-):
+class MoreThanOneSqlJsonItem(DataError,
+    code='22034', name='MORE_THAN_ONE_SQL_JSON_ITEM'):
     pass
 
-
-class NoSqlJsonItem(DataError, code="22035", name="NO_SQL_JSON_ITEM"):
+class NoSqlJsonItem(DataError,
+    code='22035', name='NO_SQL_JSON_ITEM'):
     pass
 
-
-class NonNumericSqlJsonItem(DataError, code="22036", name="NON_NUMERIC_SQL_JSON_ITEM"):
+class NonNumericSqlJsonItem(DataError,
+    code='22036', name='NON_NUMERIC_SQL_JSON_ITEM'):
     pass
 
-
-class NonUniqueKeysInAJsonObject(
-    DataError, code="22037", name="NON_UNIQUE_KEYS_IN_A_JSON_OBJECT"
-):
+class NonUniqueKeysInAJsonObject(DataError,
+    code='22037', name='NON_UNIQUE_KEYS_IN_A_JSON_OBJECT'):
     pass
 
-
-class SingletonSqlJsonItemRequired(
-    DataError, code="22038", name="SINGLETON_SQL_JSON_ITEM_REQUIRED"
-):
+class SingletonSqlJsonItemRequired(DataError,
+    code='22038', name='SINGLETON_SQL_JSON_ITEM_REQUIRED'):
     pass
 
-
-class SqlJsonArrayNotFound(DataError, code="22039", name="SQL_JSON_ARRAY_NOT_FOUND"):
+class SqlJsonArrayNotFound(DataError,
+    code='22039', name='SQL_JSON_ARRAY_NOT_FOUND'):
     pass
 
-
-class SqlJsonMemberNotFound(DataError, code="2203A", name="SQL_JSON_MEMBER_NOT_FOUND"):
+class SqlJsonMemberNotFound(DataError,
+    code='2203A', name='SQL_JSON_MEMBER_NOT_FOUND'):
     pass
 
-
-class SqlJsonNumberNotFound(DataError, code="2203B", name="SQL_JSON_NUMBER_NOT_FOUND"):
+class SqlJsonNumberNotFound(DataError,
+    code='2203B', name='SQL_JSON_NUMBER_NOT_FOUND'):
     pass
 
-
-class SqlJsonObjectNotFound(DataError, code="2203C", name="SQL_JSON_OBJECT_NOT_FOUND"):
+class SqlJsonObjectNotFound(DataError,
+    code='2203C', name='SQL_JSON_OBJECT_NOT_FOUND'):
     pass
 
-
-class TooManyJsonArrayElements(
-    DataError, code="2203D", name="TOO_MANY_JSON_ARRAY_ELEMENTS"
-):
+class TooManyJsonArrayElements(DataError,
+    code='2203D', name='TOO_MANY_JSON_ARRAY_ELEMENTS'):
     pass
 
-
-class TooManyJsonObjectMembers(
-    DataError, code="2203E", name="TOO_MANY_JSON_OBJECT_MEMBERS"
-):
+class TooManyJsonObjectMembers(DataError,
+    code='2203E', name='TOO_MANY_JSON_OBJECT_MEMBERS'):
     pass
 
-
-class SqlJsonScalarRequired(DataError, code="2203F", name="SQL_JSON_SCALAR_REQUIRED"):
+class SqlJsonScalarRequired(DataError,
+    code='2203F', name='SQL_JSON_SCALAR_REQUIRED'):
     pass
 
-
-class FloatingPointException(DataError, code="22P01", name="FLOATING_POINT_EXCEPTION"):
+class FloatingPointException(DataError,
+    code='22P01', name='FLOATING_POINT_EXCEPTION'):
     pass
 
-
-class InvalidTextRepresentation(
-    DataError, code="22P02", name="INVALID_TEXT_REPRESENTATION"
-):
+class InvalidTextRepresentation(DataError,
+    code='22P02', name='INVALID_TEXT_REPRESENTATION'):
     pass
 
-
-class InvalidBinaryRepresentation(
-    DataError, code="22P03", name="INVALID_BINARY_REPRESENTATION"
-):
+class InvalidBinaryRepresentation(DataError,
+    code='22P03', name='INVALID_BINARY_REPRESENTATION'):
     pass
 
-
-class BadCopyFileFormat(DataError, code="22P04", name="BAD_COPY_FILE_FORMAT"):
+class BadCopyFileFormat(DataError,
+    code='22P04', name='BAD_COPY_FILE_FORMAT'):
     pass
 
-
-class UntranslatableCharacter(DataError, code="22P05", name="UNTRANSLATABLE_CHARACTER"):
+class UntranslatableCharacter(DataError,
+    code='22P05', name='UNTRANSLATABLE_CHARACTER'):
     pass
 
-
-class NonstandardUseOfEscapeCharacter(
-    DataError, code="22P06", name="NONSTANDARD_USE_OF_ESCAPE_CHARACTER"
-):
+class NonstandardUseOfEscapeCharacter(DataError,
+    code='22P06', name='NONSTANDARD_USE_OF_ESCAPE_CHARACTER'):
     pass
 
 
 # Class 23 - Integrity Constraint Violation
 
-
-class IntegrityConstraintViolation(
-    IntegrityError, code="23000", name="INTEGRITY_CONSTRAINT_VIOLATION"
-):
+class IntegrityConstraintViolation(IntegrityError,
+    code='23000', name='INTEGRITY_CONSTRAINT_VIOLATION'):
     pass
 
-
-class RestrictViolation(IntegrityError, code="23001", name="RESTRICT_VIOLATION"):
+class RestrictViolation(IntegrityError,
+    code='23001', name='RESTRICT_VIOLATION'):
     pass
 
-
-class NotNullViolation(IntegrityError, code="23502", name="NOT_NULL_VIOLATION"):
+class NotNullViolation(IntegrityError,
+    code='23502', name='NOT_NULL_VIOLATION'):
     pass
 
-
-class ForeignKeyViolation(IntegrityError, code="23503", name="FOREIGN_KEY_VIOLATION"):
+class ForeignKeyViolation(IntegrityError,
+    code='23503', name='FOREIGN_KEY_VIOLATION'):
     pass
 
-
-class UniqueViolation(IntegrityError, code="23505", name="UNIQUE_VIOLATION"):
+class UniqueViolation(IntegrityError,
+    code='23505', name='UNIQUE_VIOLATION'):
     pass
 
-
-class CheckViolation(IntegrityError, code="23514", name="CHECK_VIOLATION"):
+class CheckViolation(IntegrityError,
+    code='23514', name='CHECK_VIOLATION'):
     pass
 
-
-class ExclusionViolation(IntegrityError, code="23P01", name="EXCLUSION_VIOLATION"):
+class ExclusionViolation(IntegrityError,
+    code='23P01', name='EXCLUSION_VIOLATION'):
     pass
 
 
 # Class 24 - Invalid Cursor State
 
-
-class InvalidCursorState(InternalError, code="24000", name="INVALID_CURSOR_STATE"):
+class InvalidCursorState(InternalError,
+    code='24000', name='INVALID_CURSOR_STATE'):
     pass
 
 
 # Class 25 - Invalid Transaction State
 
-
-class InvalidTransactionState(
-    InternalError, code="25000", name="INVALID_TRANSACTION_STATE"
-):
+class InvalidTransactionState(InternalError,
+    code='25000', name='INVALID_TRANSACTION_STATE'):
     pass
 
-
-class ActiveSqlTransaction(InternalError, code="25001", name="ACTIVE_SQL_TRANSACTION"):
+class ActiveSqlTransaction(InternalError,
+    code='25001', name='ACTIVE_SQL_TRANSACTION'):
     pass
 
-
-class BranchTransactionAlreadyActive(
-    InternalError, code="25002", name="BRANCH_TRANSACTION_ALREADY_ACTIVE"
-):
+class BranchTransactionAlreadyActive(InternalError,
+    code='25002', name='BRANCH_TRANSACTION_ALREADY_ACTIVE'):
     pass
 
-
-class InappropriateAccessModeForBranchTransaction(
-    InternalError, code="25003", name="INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION"
-):
+class InappropriateAccessModeForBranchTransaction(InternalError,
+    code='25003', name='INAPPROPRIATE_ACCESS_MODE_FOR_BRANCH_TRANSACTION'):
     pass
 
-
-class InappropriateIsolationLevelForBranchTransaction(
-    InternalError,
-    code="25004",
-    name="INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION",
-):
+class InappropriateIsolationLevelForBranchTransaction(InternalError,
+    code='25004', name='INAPPROPRIATE_ISOLATION_LEVEL_FOR_BRANCH_TRANSACTION'):
     pass
 
-
-class NoActiveSqlTransactionForBranchTransaction(
-    InternalError, code="25005", name="NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION"
-):
+class NoActiveSqlTransactionForBranchTransaction(InternalError,
+    code='25005', name='NO_ACTIVE_SQL_TRANSACTION_FOR_BRANCH_TRANSACTION'):
     pass
 
-
-class ReadOnlySqlTransaction(
-    InternalError, code="25006", name="READ_ONLY_SQL_TRANSACTION"
-):
+class ReadOnlySqlTransaction(InternalError,
+    code='25006', name='READ_ONLY_SQL_TRANSACTION'):
     pass
 
-
-class SchemaAndDataStatementMixingNotSupported(
-    InternalError, code="25007", name="SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED"
-):
+class SchemaAndDataStatementMixingNotSupported(InternalError,
+    code='25007', name='SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED'):
     pass
 
-
-class HeldCursorRequiresSameIsolationLevel(
-    InternalError, code="25008", name="HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL"
-):
+class HeldCursorRequiresSameIsolationLevel(InternalError,
+    code='25008', name='HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL'):
     pass
 
-
-class NoActiveSqlTransaction(
-    InternalError, code="25P01", name="NO_ACTIVE_SQL_TRANSACTION"
-):
+class NoActiveSqlTransaction(InternalError,
+    code='25P01', name='NO_ACTIVE_SQL_TRANSACTION'):
     pass
 
-
-class InFailedSqlTransaction(
-    InternalError, code="25P02", name="IN_FAILED_SQL_TRANSACTION"
-):
+class InFailedSqlTransaction(InternalError,
+    code='25P02', name='IN_FAILED_SQL_TRANSACTION'):
     pass
 
-
-class IdleInTransactionSessionTimeout(
-    InternalError, code="25P03", name="IDLE_IN_TRANSACTION_SESSION_TIMEOUT"
-):
+class IdleInTransactionSessionTimeout(InternalError,
+    code='25P03', name='IDLE_IN_TRANSACTION_SESSION_TIMEOUT'):
     pass
 
 
 # Class 26 - Invalid SQL Statement Name
 
-
-class InvalidSqlStatementName(
-    ProgrammingError, code="26000", name="INVALID_SQL_STATEMENT_NAME"
-):
+class InvalidSqlStatementName(ProgrammingError,
+    code='26000', name='INVALID_SQL_STATEMENT_NAME'):
     pass
 
 
 # Class 27 - Triggered Data Change Violation
 
-
-class TriggeredDataChangeViolation(
-    OperationalError, code="27000", name="TRIGGERED_DATA_CHANGE_VIOLATION"
-):
+class TriggeredDataChangeViolation(OperationalError,
+    code='27000', name='TRIGGERED_DATA_CHANGE_VIOLATION'):
     pass
 
 
 # Class 28 - Invalid Authorization Specification
 
-
-class InvalidAuthorizationSpecification(
-    OperationalError, code="28000", name="INVALID_AUTHORIZATION_SPECIFICATION"
-):
+class InvalidAuthorizationSpecification(OperationalError,
+    code='28000', name='INVALID_AUTHORIZATION_SPECIFICATION'):
     pass
 
-
-class InvalidPassword(OperationalError, code="28P01", name="INVALID_PASSWORD"):
+class InvalidPassword(OperationalError,
+    code='28P01', name='INVALID_PASSWORD'):
     pass
 
 
 # Class 2B - Dependent Privilege Descriptors Still Exist
 
-
-class DependentPrivilegeDescriptorsStillExist(
-    InternalError, code="2B000", name="DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST"
-):
+class DependentPrivilegeDescriptorsStillExist(InternalError,
+    code='2B000', name='DEPENDENT_PRIVILEGE_DESCRIPTORS_STILL_EXIST'):
     pass
 
-
-class DependentObjectsStillExist(
-    InternalError, code="2BP01", name="DEPENDENT_OBJECTS_STILL_EXIST"
-):
+class DependentObjectsStillExist(InternalError,
+    code='2BP01', name='DEPENDENT_OBJECTS_STILL_EXIST'):
     pass
 
 
 # Class 2D - Invalid Transaction Termination
 
-
-class InvalidTransactionTermination(
-    InternalError, code="2D000", name="INVALID_TRANSACTION_TERMINATION"
-):
+class InvalidTransactionTermination(InternalError,
+    code='2D000', name='INVALID_TRANSACTION_TERMINATION'):
     pass
 
 
 # Class 2F - SQL Routine Exception
 
-
-class SqlRoutineException(OperationalError, code="2F000", name="SQL_ROUTINE_EXCEPTION"):
+class SqlRoutineException(OperationalError,
+    code='2F000', name='SQL_ROUTINE_EXCEPTION'):
     pass
 
-
-class ModifyingSqlDataNotPermitted(
-    OperationalError, code="2F002", name="MODIFYING_SQL_DATA_NOT_PERMITTED"
-):
+class ModifyingSqlDataNotPermitted(OperationalError,
+    code='2F002', name='MODIFYING_SQL_DATA_NOT_PERMITTED'):
     pass
 
-
-class ProhibitedSqlStatementAttempted(
-    OperationalError, code="2F003", name="PROHIBITED_SQL_STATEMENT_ATTEMPTED"
-):
+class ProhibitedSqlStatementAttempted(OperationalError,
+    code='2F003', name='PROHIBITED_SQL_STATEMENT_ATTEMPTED'):
     pass
 
-
-class ReadingSqlDataNotPermitted(
-    OperationalError, code="2F004", name="READING_SQL_DATA_NOT_PERMITTED"
-):
+class ReadingSqlDataNotPermitted(OperationalError,
+    code='2F004', name='READING_SQL_DATA_NOT_PERMITTED'):
     pass
 
-
-class FunctionExecutedNoReturnStatement(
-    OperationalError, code="2F005", name="FUNCTION_EXECUTED_NO_RETURN_STATEMENT"
-):
+class FunctionExecutedNoReturnStatement(OperationalError,
+    code='2F005', name='FUNCTION_EXECUTED_NO_RETURN_STATEMENT'):
     pass
 
 
 # Class 34 - Invalid Cursor Name
 
-
-class InvalidCursorName(ProgrammingError, code="34000", name="INVALID_CURSOR_NAME"):
+class InvalidCursorName(ProgrammingError,
+    code='34000', name='INVALID_CURSOR_NAME'):
     pass
 
 
 # Class 38 - External Routine Exception
 
-
-class ExternalRoutineException(
-    OperationalError, code="38000", name="EXTERNAL_ROUTINE_EXCEPTION"
-):
+class ExternalRoutineException(OperationalError,
+    code='38000', name='EXTERNAL_ROUTINE_EXCEPTION'):
     pass
 
-
-class ContainingSqlNotPermitted(
-    OperationalError, code="38001", name="CONTAINING_SQL_NOT_PERMITTED"
-):
+class ContainingSqlNotPermitted(OperationalError,
+    code='38001', name='CONTAINING_SQL_NOT_PERMITTED'):
     pass
 
-
-class ModifyingSqlDataNotPermittedExt(
-    OperationalError, code="38002", name="MODIFYING_SQL_DATA_NOT_PERMITTED"
-):
+class ModifyingSqlDataNotPermittedExt(OperationalError,
+    code='38002', name='MODIFYING_SQL_DATA_NOT_PERMITTED'):
     pass
 
-
-class ProhibitedSqlStatementAttemptedExt(
-    OperationalError, code="38003", name="PROHIBITED_SQL_STATEMENT_ATTEMPTED"
-):
+class ProhibitedSqlStatementAttemptedExt(OperationalError,
+    code='38003', name='PROHIBITED_SQL_STATEMENT_ATTEMPTED'):
     pass
 
-
-class ReadingSqlDataNotPermittedExt(
-    OperationalError, code="38004", name="READING_SQL_DATA_NOT_PERMITTED"
-):
+class ReadingSqlDataNotPermittedExt(OperationalError,
+    code='38004', name='READING_SQL_DATA_NOT_PERMITTED'):
     pass
 
 
 # Class 39 - External Routine Invocation Exception
 
-
-class ExternalRoutineInvocationException(
-    OperationalError, code="39000", name="EXTERNAL_ROUTINE_INVOCATION_EXCEPTION"
-):
+class ExternalRoutineInvocationException(OperationalError,
+    code='39000', name='EXTERNAL_ROUTINE_INVOCATION_EXCEPTION'):
     pass
 
-
-class InvalidSqlstateReturned(
-    OperationalError, code="39001", name="INVALID_SQLSTATE_RETURNED"
-):
+class InvalidSqlstateReturned(OperationalError,
+    code='39001', name='INVALID_SQLSTATE_RETURNED'):
     pass
 
-
-class NullValueNotAllowedExt(
-    OperationalError, code="39004", name="NULL_VALUE_NOT_ALLOWED"
-):
+class NullValueNotAllowedExt(OperationalError,
+    code='39004', name='NULL_VALUE_NOT_ALLOWED'):
     pass
 
-
-class TriggerProtocolViolated(
-    OperationalError, code="39P01", name="TRIGGER_PROTOCOL_VIOLATED"
-):
+class TriggerProtocolViolated(OperationalError,
+    code='39P01', name='TRIGGER_PROTOCOL_VIOLATED'):
     pass
 
-
-class SrfProtocolViolated(OperationalError, code="39P02", name="SRF_PROTOCOL_VIOLATED"):
+class SrfProtocolViolated(OperationalError,
+    code='39P02', name='SRF_PROTOCOL_VIOLATED'):
     pass
 
-
-class EventTriggerProtocolViolated(
-    OperationalError, code="39P03", name="EVENT_TRIGGER_PROTOCOL_VIOLATED"
-):
+class EventTriggerProtocolViolated(OperationalError,
+    code='39P03', name='EVENT_TRIGGER_PROTOCOL_VIOLATED'):
     pass
 
 
 # Class 3B - Savepoint Exception
 
-
-class SavepointException(OperationalError, code="3B000", name="SAVEPOINT_EXCEPTION"):
+class SavepointException(OperationalError,
+    code='3B000', name='SAVEPOINT_EXCEPTION'):
     pass
 
-
-class InvalidSavepointSpecification(
-    OperationalError, code="3B001", name="INVALID_SAVEPOINT_SPECIFICATION"
-):
+class InvalidSavepointSpecification(OperationalError,
+    code='3B001', name='INVALID_SAVEPOINT_SPECIFICATION'):
     pass
 
 
 # Class 3D - Invalid Catalog Name
 
-
-class InvalidCatalogName(ProgrammingError, code="3D000", name="INVALID_CATALOG_NAME"):
+class InvalidCatalogName(ProgrammingError,
+    code='3D000', name='INVALID_CATALOG_NAME'):
     pass
 
 
 # Class 3F - Invalid Schema Name
 
-
-class InvalidSchemaName(ProgrammingError, code="3F000", name="INVALID_SCHEMA_NAME"):
+class InvalidSchemaName(ProgrammingError,
+    code='3F000', name='INVALID_SCHEMA_NAME'):
     pass
 
 
 # Class 40 - Transaction Rollback
 
-
-class TransactionRollback(OperationalError, code="40000", name="TRANSACTION_ROLLBACK"):
+class TransactionRollback(OperationalError,
+    code='40000', name='TRANSACTION_ROLLBACK'):
     pass
 
-
-class SerializationFailure(
-    OperationalError, code="40001", name="SERIALIZATION_FAILURE"
-):
+class SerializationFailure(OperationalError,
+    code='40001', name='SERIALIZATION_FAILURE'):
     pass
 
-
-class TransactionIntegrityConstraintViolation(
-    OperationalError, code="40002", name="TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION"
-):
+class TransactionIntegrityConstraintViolation(OperationalError,
+    code='40002', name='TRANSACTION_INTEGRITY_CONSTRAINT_VIOLATION'):
     pass
 
-
-class StatementCompletionUnknown(
-    OperationalError, code="40003", name="STATEMENT_COMPLETION_UNKNOWN"
-):
+class StatementCompletionUnknown(OperationalError,
+    code='40003', name='STATEMENT_COMPLETION_UNKNOWN'):
     pass
 
-
-class DeadlockDetected(OperationalError, code="40P01", name="DEADLOCK_DETECTED"):
+class DeadlockDetected(OperationalError,
+    code='40P01', name='DEADLOCK_DETECTED'):
     pass
 
 
 # Class 42 - Syntax Error or Access Rule Violation
 
-
-class SyntaxErrorOrAccessRuleViolation(
-    ProgrammingError, code="42000", name="SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION"
-):
+class SyntaxErrorOrAccessRuleViolation(ProgrammingError,
+    code='42000', name='SYNTAX_ERROR_OR_ACCESS_RULE_VIOLATION'):
     pass
 
-
-class InsufficientPrivilege(
-    ProgrammingError, code="42501", name="INSUFFICIENT_PRIVILEGE"
-):
+class InsufficientPrivilege(ProgrammingError,
+    code='42501', name='INSUFFICIENT_PRIVILEGE'):
     pass
 
-
-class SyntaxError(ProgrammingError, code="42601", name="SYNTAX_ERROR"):
+class SyntaxError(ProgrammingError,
+    code='42601', name='SYNTAX_ERROR'):
     pass
 
-
-class InvalidName(ProgrammingError, code="42602", name="INVALID_NAME"):
+class InvalidName(ProgrammingError,
+    code='42602', name='INVALID_NAME'):
     pass
 
-
-class InvalidColumnDefinition(
-    ProgrammingError, code="42611", name="INVALID_COLUMN_DEFINITION"
-):
+class InvalidColumnDefinition(ProgrammingError,
+    code='42611', name='INVALID_COLUMN_DEFINITION'):
     pass
 
-
-class NameTooLong(ProgrammingError, code="42622", name="NAME_TOO_LONG"):
+class NameTooLong(ProgrammingError,
+    code='42622', name='NAME_TOO_LONG'):
     pass
 
-
-class DuplicateColumn(ProgrammingError, code="42701", name="DUPLICATE_COLUMN"):
+class DuplicateColumn(ProgrammingError,
+    code='42701', name='DUPLICATE_COLUMN'):
     pass
 
-
-class AmbiguousColumn(ProgrammingError, code="42702", name="AMBIGUOUS_COLUMN"):
+class AmbiguousColumn(ProgrammingError,
+    code='42702', name='AMBIGUOUS_COLUMN'):
     pass
 
-
-class UndefinedColumn(ProgrammingError, code="42703", name="UNDEFINED_COLUMN"):
+class UndefinedColumn(ProgrammingError,
+    code='42703', name='UNDEFINED_COLUMN'):
     pass
 
-
-class UndefinedObject(ProgrammingError, code="42704", name="UNDEFINED_OBJECT"):
+class UndefinedObject(ProgrammingError,
+    code='42704', name='UNDEFINED_OBJECT'):
     pass
 
-
-class DuplicateObject(ProgrammingError, code="42710", name="DUPLICATE_OBJECT"):
+class DuplicateObject(ProgrammingError,
+    code='42710', name='DUPLICATE_OBJECT'):
     pass
 
-
-class DuplicateAlias(ProgrammingError, code="42712", name="DUPLICATE_ALIAS"):
+class DuplicateAlias(ProgrammingError,
+    code='42712', name='DUPLICATE_ALIAS'):
     pass
 
-
-class DuplicateFunction(ProgrammingError, code="42723", name="DUPLICATE_FUNCTION"):
+class DuplicateFunction(ProgrammingError,
+    code='42723', name='DUPLICATE_FUNCTION'):
     pass
 
-
-class AmbiguousFunction(ProgrammingError, code="42725", name="AMBIGUOUS_FUNCTION"):
+class AmbiguousFunction(ProgrammingError,
+    code='42725', name='AMBIGUOUS_FUNCTION'):
     pass
 
-
-class GroupingError(ProgrammingError, code="42803", name="GROUPING_ERROR"):
+class GroupingError(ProgrammingError,
+    code='42803', name='GROUPING_ERROR'):
     pass
 
-
-class DatatypeMismatch(ProgrammingError, code="42804", name="DATATYPE_MISMATCH"):
+class DatatypeMismatch(ProgrammingError,
+    code='42804', name='DATATYPE_MISMATCH'):
     pass
 
-
-class WrongObjectType(ProgrammingError, code="42809", name="WRONG_OBJECT_TYPE"):
+class WrongObjectType(ProgrammingError,
+    code='42809', name='WRONG_OBJECT_TYPE'):
     pass
 
-
-class InvalidForeignKey(ProgrammingError, code="42830", name="INVALID_FOREIGN_KEY"):
+class InvalidForeignKey(ProgrammingError,
+    code='42830', name='INVALID_FOREIGN_KEY'):
     pass
 
-
-class CannotCoerce(ProgrammingError, code="42846", name="CANNOT_COERCE"):
+class CannotCoerce(ProgrammingError,
+    code='42846', name='CANNOT_COERCE'):
     pass
 
-
-class UndefinedFunction(ProgrammingError, code="42883", name="UNDEFINED_FUNCTION"):
+class UndefinedFunction(ProgrammingError,
+    code='42883', name='UNDEFINED_FUNCTION'):
     pass
 
-
-class GeneratedAlways(ProgrammingError, code="428C9", name="GENERATED_ALWAYS"):
+class GeneratedAlways(ProgrammingError,
+    code='428C9', name='GENERATED_ALWAYS'):
     pass
 
-
-class ReservedName(ProgrammingError, code="42939", name="RESERVED_NAME"):
+class ReservedName(ProgrammingError,
+    code='42939', name='RESERVED_NAME'):
     pass
 
-
-class UndefinedTable(ProgrammingError, code="42P01", name="UNDEFINED_TABLE"):
+class UndefinedTable(ProgrammingError,
+    code='42P01', name='UNDEFINED_TABLE'):
     pass
 
-
-class UndefinedParameter(ProgrammingError, code="42P02", name="UNDEFINED_PARAMETER"):
+class UndefinedParameter(ProgrammingError,
+    code='42P02', name='UNDEFINED_PARAMETER'):
     pass
 
-
-class DuplicateCursor(ProgrammingError, code="42P03", name="DUPLICATE_CURSOR"):
+class DuplicateCursor(ProgrammingError,
+    code='42P03', name='DUPLICATE_CURSOR'):
     pass
 
-
-class DuplicateDatabase(ProgrammingError, code="42P04", name="DUPLICATE_DATABASE"):
+class DuplicateDatabase(ProgrammingError,
+    code='42P04', name='DUPLICATE_DATABASE'):
     pass
 
-
-class DuplicatePreparedStatement(
-    ProgrammingError, code="42P05", name="DUPLICATE_PREPARED_STATEMENT"
-):
+class DuplicatePreparedStatement(ProgrammingError,
+    code='42P05', name='DUPLICATE_PREPARED_STATEMENT'):
     pass
 
-
-class DuplicateSchema(ProgrammingError, code="42P06", name="DUPLICATE_SCHEMA"):
+class DuplicateSchema(ProgrammingError,
+    code='42P06', name='DUPLICATE_SCHEMA'):
     pass
 
-
-class DuplicateTable(ProgrammingError, code="42P07", name="DUPLICATE_TABLE"):
+class DuplicateTable(ProgrammingError,
+    code='42P07', name='DUPLICATE_TABLE'):
     pass
 
-
-class AmbiguousParameter(ProgrammingError, code="42P08", name="AMBIGUOUS_PARAMETER"):
+class AmbiguousParameter(ProgrammingError,
+    code='42P08', name='AMBIGUOUS_PARAMETER'):
     pass
 
-
-class AmbiguousAlias(ProgrammingError, code="42P09", name="AMBIGUOUS_ALIAS"):
+class AmbiguousAlias(ProgrammingError,
+    code='42P09', name='AMBIGUOUS_ALIAS'):
     pass
 
-
-class InvalidColumnReference(
-    ProgrammingError, code="42P10", name="INVALID_COLUMN_REFERENCE"
-):
+class InvalidColumnReference(ProgrammingError,
+    code='42P10', name='INVALID_COLUMN_REFERENCE'):
     pass
 
-
-class InvalidCursorDefinition(
-    ProgrammingError, code="42P11", name="INVALID_CURSOR_DEFINITION"
-):
+class InvalidCursorDefinition(ProgrammingError,
+    code='42P11', name='INVALID_CURSOR_DEFINITION'):
     pass
 
-
-class InvalidDatabaseDefinition(
-    ProgrammingError, code="42P12", name="INVALID_DATABASE_DEFINITION"
-):
+class InvalidDatabaseDefinition(ProgrammingError,
+    code='42P12', name='INVALID_DATABASE_DEFINITION'):
     pass
 
-
-class InvalidFunctionDefinition(
-    ProgrammingError, code="42P13", name="INVALID_FUNCTION_DEFINITION"
-):
+class InvalidFunctionDefinition(ProgrammingError,
+    code='42P13', name='INVALID_FUNCTION_DEFINITION'):
     pass
 
-
-class InvalidPreparedStatementDefinition(
-    ProgrammingError, code="42P14", name="INVALID_PREPARED_STATEMENT_DEFINITION"
-):
+class InvalidPreparedStatementDefinition(ProgrammingError,
+    code='42P14', name='INVALID_PREPARED_STATEMENT_DEFINITION'):
     pass
 
-
-class InvalidSchemaDefinition(
-    ProgrammingError, code="42P15", name="INVALID_SCHEMA_DEFINITION"
-):
+class InvalidSchemaDefinition(ProgrammingError,
+    code='42P15', name='INVALID_SCHEMA_DEFINITION'):
     pass
 
-
-class InvalidTableDefinition(
-    ProgrammingError, code="42P16", name="INVALID_TABLE_DEFINITION"
-):
+class InvalidTableDefinition(ProgrammingError,
+    code='42P16', name='INVALID_TABLE_DEFINITION'):
     pass
 
-
-class InvalidObjectDefinition(
-    ProgrammingError, code="42P17", name="INVALID_OBJECT_DEFINITION"
-):
+class InvalidObjectDefinition(ProgrammingError,
+    code='42P17', name='INVALID_OBJECT_DEFINITION'):
     pass
 
-
-class IndeterminateDatatype(
-    ProgrammingError, code="42P18", name="INDETERMINATE_DATATYPE"
-):
+class IndeterminateDatatype(ProgrammingError,
+    code='42P18', name='INDETERMINATE_DATATYPE'):
     pass
 
-
-class InvalidRecursion(ProgrammingError, code="42P19", name="INVALID_RECURSION"):
+class InvalidRecursion(ProgrammingError,
+    code='42P19', name='INVALID_RECURSION'):
     pass
 
-
-class WindowingError(ProgrammingError, code="42P20", name="WINDOWING_ERROR"):
+class WindowingError(ProgrammingError,
+    code='42P20', name='WINDOWING_ERROR'):
     pass
 
-
-class CollationMismatch(ProgrammingError, code="42P21", name="COLLATION_MISMATCH"):
+class CollationMismatch(ProgrammingError,
+    code='42P21', name='COLLATION_MISMATCH'):
     pass
 
-
-class IndeterminateCollation(
-    ProgrammingError, code="42P22", name="INDETERMINATE_COLLATION"
-):
+class IndeterminateCollation(ProgrammingError,
+    code='42P22', name='INDETERMINATE_COLLATION'):
     pass
 
 
 # Class 44 - WITH CHECK OPTION Violation
 
-
-class WithCheckOptionViolation(
-    ProgrammingError, code="44000", name="WITH_CHECK_OPTION_VIOLATION"
-):
+class WithCheckOptionViolation(ProgrammingError,
+    code='44000', name='WITH_CHECK_OPTION_VIOLATION'):
     pass
 
 
 # Class 53 - Insufficient Resources
 
-
-class InsufficientResources(
-    OperationalError, code="53000", name="INSUFFICIENT_RESOURCES"
-):
+class InsufficientResources(OperationalError,
+    code='53000', name='INSUFFICIENT_RESOURCES'):
     pass
 
-
-class DiskFull(OperationalError, code="53100", name="DISK_FULL"):
+class DiskFull(OperationalError,
+    code='53100', name='DISK_FULL'):
     pass
 
-
-class OutOfMemory(OperationalError, code="53200", name="OUT_OF_MEMORY"):
+class OutOfMemory(OperationalError,
+    code='53200', name='OUT_OF_MEMORY'):
     pass
 
-
-class TooManyConnections(OperationalError, code="53300", name="TOO_MANY_CONNECTIONS"):
+class TooManyConnections(OperationalError,
+    code='53300', name='TOO_MANY_CONNECTIONS'):
     pass
 
-
-class ConfigurationLimitExceeded(
-    OperationalError, code="53400", name="CONFIGURATION_LIMIT_EXCEEDED"
-):
+class ConfigurationLimitExceeded(OperationalError,
+    code='53400', name='CONFIGURATION_LIMIT_EXCEEDED'):
     pass
 
 
 # Class 54 - Program Limit Exceeded
 
-
-class ProgramLimitExceeded(
-    OperationalError, code="54000", name="PROGRAM_LIMIT_EXCEEDED"
-):
+class ProgramLimitExceeded(OperationalError,
+    code='54000', name='PROGRAM_LIMIT_EXCEEDED'):
     pass
 
-
-class StatementTooComplex(OperationalError, code="54001", name="STATEMENT_TOO_COMPLEX"):
+class StatementTooComplex(OperationalError,
+    code='54001', name='STATEMENT_TOO_COMPLEX'):
     pass
 
-
-class TooManyColumns(OperationalError, code="54011", name="TOO_MANY_COLUMNS"):
+class TooManyColumns(OperationalError,
+    code='54011', name='TOO_MANY_COLUMNS'):
     pass
 
-
-class TooManyArguments(OperationalError, code="54023", name="TOO_MANY_ARGUMENTS"):
+class TooManyArguments(OperationalError,
+    code='54023', name='TOO_MANY_ARGUMENTS'):
     pass
 
 
 # Class 55 - Object Not In Prerequisite State
 
-
-class ObjectNotInPrerequisiteState(
-    OperationalError, code="55000", name="OBJECT_NOT_IN_PREREQUISITE_STATE"
-):
+class ObjectNotInPrerequisiteState(OperationalError,
+    code='55000', name='OBJECT_NOT_IN_PREREQUISITE_STATE'):
     pass
 
-
-class ObjectInUse(OperationalError, code="55006", name="OBJECT_IN_USE"):
+class ObjectInUse(OperationalError,
+    code='55006', name='OBJECT_IN_USE'):
     pass
 
-
-class CantChangeRuntimeParam(
-    OperationalError, code="55P02", name="CANT_CHANGE_RUNTIME_PARAM"
-):
+class CantChangeRuntimeParam(OperationalError,
+    code='55P02', name='CANT_CHANGE_RUNTIME_PARAM'):
     pass
 
-
-class LockNotAvailable(OperationalError, code="55P03", name="LOCK_NOT_AVAILABLE"):
+class LockNotAvailable(OperationalError,
+    code='55P03', name='LOCK_NOT_AVAILABLE'):
     pass
 
-
-class UnsafeNewEnumValueUsage(
-    OperationalError, code="55P04", name="UNSAFE_NEW_ENUM_VALUE_USAGE"
-):
+class UnsafeNewEnumValueUsage(OperationalError,
+    code='55P04', name='UNSAFE_NEW_ENUM_VALUE_USAGE'):
     pass
 
 
 # Class 57 - Operator Intervention
 
-
-class OperatorIntervention(
-    OperationalError, code="57000", name="OPERATOR_INTERVENTION"
-):
+class OperatorIntervention(OperationalError,
+    code='57000', name='OPERATOR_INTERVENTION'):
     pass
 
-
-class QueryCanceled(OperationalError, code="57014", name="QUERY_CANCELED"):
+class QueryCanceled(OperationalError,
+    code='57014', name='QUERY_CANCELED'):
     pass
 
-
-class AdminShutdown(OperationalError, code="57P01", name="ADMIN_SHUTDOWN"):
+class AdminShutdown(OperationalError,
+    code='57P01', name='ADMIN_SHUTDOWN'):
     pass
 
-
-class CrashShutdown(OperationalError, code="57P02", name="CRASH_SHUTDOWN"):
+class CrashShutdown(OperationalError,
+    code='57P02', name='CRASH_SHUTDOWN'):
     pass
 
-
-class CannotConnectNow(OperationalError, code="57P03", name="CANNOT_CONNECT_NOW"):
+class CannotConnectNow(OperationalError,
+    code='57P03', name='CANNOT_CONNECT_NOW'):
     pass
 
-
-class DatabaseDropped(OperationalError, code="57P04", name="DATABASE_DROPPED"):
+class DatabaseDropped(OperationalError,
+    code='57P04', name='DATABASE_DROPPED'):
     pass
 
-
-class IdleSessionTimeout(OperationalError, code="57P05", name="IDLE_SESSION_TIMEOUT"):
+class IdleSessionTimeout(OperationalError,
+    code='57P05', name='IDLE_SESSION_TIMEOUT'):
     pass
 
 
 # Class 58 - System Error (errors external to PostgreSQL itself)
 
-
-class SystemError(OperationalError, code="58000", name="SYSTEM_ERROR"):
+class SystemError(OperationalError,
+    code='58000', name='SYSTEM_ERROR'):
     pass
 
-
-class IoError(OperationalError, code="58030", name="IO_ERROR"):
+class IoError(OperationalError,
+    code='58030', name='IO_ERROR'):
     pass
 
-
-class UndefinedFile(OperationalError, code="58P01", name="UNDEFINED_FILE"):
+class UndefinedFile(OperationalError,
+    code='58P01', name='UNDEFINED_FILE'):
     pass
 
-
-class DuplicateFile(OperationalError, code="58P02", name="DUPLICATE_FILE"):
+class DuplicateFile(OperationalError,
+    code='58P02', name='DUPLICATE_FILE'):
     pass
 
 
 # Class 72 - Snapshot Failure
 
-
-class SnapshotTooOld(DatabaseError, code="72000", name="SNAPSHOT_TOO_OLD"):
+class SnapshotTooOld(DatabaseError,
+    code='72000', name='SNAPSHOT_TOO_OLD'):
     pass
 
 
 # Class F0 - Configuration File Error
 
-
-class ConfigFileError(OperationalError, code="F0000", name="CONFIG_FILE_ERROR"):
+class ConfigFileError(OperationalError,
+    code='F0000', name='CONFIG_FILE_ERROR'):
     pass
 
-
-class LockFileExists(OperationalError, code="F0001", name="LOCK_FILE_EXISTS"):
+class LockFileExists(OperationalError,
+    code='F0001', name='LOCK_FILE_EXISTS'):
     pass
 
 
 # Class HV - Foreign Data Wrapper Error (SQL/MED)
 
-
-class FdwError(OperationalError, code="HV000", name="FDW_ERROR"):
+class FdwError(OperationalError,
+    code='HV000', name='FDW_ERROR'):
     pass
 
-
-class FdwOutOfMemory(OperationalError, code="HV001", name="FDW_OUT_OF_MEMORY"):
+class FdwOutOfMemory(OperationalError,
+    code='HV001', name='FDW_OUT_OF_MEMORY'):
     pass
 
-
-class FdwDynamicParameterValueNeeded(
-    OperationalError, code="HV002", name="FDW_DYNAMIC_PARAMETER_VALUE_NEEDED"
-):
+class FdwDynamicParameterValueNeeded(OperationalError,
+    code='HV002', name='FDW_DYNAMIC_PARAMETER_VALUE_NEEDED'):
     pass
 
-
-class FdwInvalidDataType(OperationalError, code="HV004", name="FDW_INVALID_DATA_TYPE"):
+class FdwInvalidDataType(OperationalError,
+    code='HV004', name='FDW_INVALID_DATA_TYPE'):
     pass
 
-
-class FdwColumnNameNotFound(
-    OperationalError, code="HV005", name="FDW_COLUMN_NAME_NOT_FOUND"
-):
+class FdwColumnNameNotFound(OperationalError,
+    code='HV005', name='FDW_COLUMN_NAME_NOT_FOUND'):
     pass
 
-
-class FdwInvalidDataTypeDescriptors(
-    OperationalError, code="HV006", name="FDW_INVALID_DATA_TYPE_DESCRIPTORS"
-):
+class FdwInvalidDataTypeDescriptors(OperationalError,
+    code='HV006', name='FDW_INVALID_DATA_TYPE_DESCRIPTORS'):
     pass
 
-
-class FdwInvalidColumnName(
-    OperationalError, code="HV007", name="FDW_INVALID_COLUMN_NAME"
-):
+class FdwInvalidColumnName(OperationalError,
+    code='HV007', name='FDW_INVALID_COLUMN_NAME'):
     pass
 
-
-class FdwInvalidColumnNumber(
-    OperationalError, code="HV008", name="FDW_INVALID_COLUMN_NUMBER"
-):
+class FdwInvalidColumnNumber(OperationalError,
+    code='HV008', name='FDW_INVALID_COLUMN_NUMBER'):
     pass
 
-
-class FdwInvalidUseOfNullPointer(
-    OperationalError, code="HV009", name="FDW_INVALID_USE_OF_NULL_POINTER"
-):
+class FdwInvalidUseOfNullPointer(OperationalError,
+    code='HV009', name='FDW_INVALID_USE_OF_NULL_POINTER'):
     pass
 
-
-class FdwInvalidStringFormat(
-    OperationalError, code="HV00A", name="FDW_INVALID_STRING_FORMAT"
-):
+class FdwInvalidStringFormat(OperationalError,
+    code='HV00A', name='FDW_INVALID_STRING_FORMAT'):
     pass
 
-
-class FdwInvalidHandle(OperationalError, code="HV00B", name="FDW_INVALID_HANDLE"):
+class FdwInvalidHandle(OperationalError,
+    code='HV00B', name='FDW_INVALID_HANDLE'):
     pass
 
-
-class FdwInvalidOptionIndex(
-    OperationalError, code="HV00C", name="FDW_INVALID_OPTION_INDEX"
-):
+class FdwInvalidOptionIndex(OperationalError,
+    code='HV00C', name='FDW_INVALID_OPTION_INDEX'):
     pass
 
-
-class FdwInvalidOptionName(
-    OperationalError, code="HV00D", name="FDW_INVALID_OPTION_NAME"
-):
+class FdwInvalidOptionName(OperationalError,
+    code='HV00D', name='FDW_INVALID_OPTION_NAME'):
     pass
 
-
-class FdwOptionNameNotFound(
-    OperationalError, code="HV00J", name="FDW_OPTION_NAME_NOT_FOUND"
-):
+class FdwOptionNameNotFound(OperationalError,
+    code='HV00J', name='FDW_OPTION_NAME_NOT_FOUND'):
     pass
 
-
-class FdwReplyHandle(OperationalError, code="HV00K", name="FDW_REPLY_HANDLE"):
+class FdwReplyHandle(OperationalError,
+    code='HV00K', name='FDW_REPLY_HANDLE'):
     pass
 
-
-class FdwUnableToCreateExecution(
-    OperationalError, code="HV00L", name="FDW_UNABLE_TO_CREATE_EXECUTION"
-):
+class FdwUnableToCreateExecution(OperationalError,
+    code='HV00L', name='FDW_UNABLE_TO_CREATE_EXECUTION'):
     pass
 
-
-class FdwUnableToCreateReply(
-    OperationalError, code="HV00M", name="FDW_UNABLE_TO_CREATE_REPLY"
-):
+class FdwUnableToCreateReply(OperationalError,
+    code='HV00M', name='FDW_UNABLE_TO_CREATE_REPLY'):
     pass
 
-
-class FdwUnableToEstablishConnection(
-    OperationalError, code="HV00N", name="FDW_UNABLE_TO_ESTABLISH_CONNECTION"
-):
+class FdwUnableToEstablishConnection(OperationalError,
+    code='HV00N', name='FDW_UNABLE_TO_ESTABLISH_CONNECTION'):
     pass
 
-
-class FdwNoSchemas(OperationalError, code="HV00P", name="FDW_NO_SCHEMAS"):
+class FdwNoSchemas(OperationalError,
+    code='HV00P', name='FDW_NO_SCHEMAS'):
     pass
 
-
-class FdwSchemaNotFound(OperationalError, code="HV00Q", name="FDW_SCHEMA_NOT_FOUND"):
+class FdwSchemaNotFound(OperationalError,
+    code='HV00Q', name='FDW_SCHEMA_NOT_FOUND'):
     pass
 
-
-class FdwTableNotFound(OperationalError, code="HV00R", name="FDW_TABLE_NOT_FOUND"):
+class FdwTableNotFound(OperationalError,
+    code='HV00R', name='FDW_TABLE_NOT_FOUND'):
     pass
 
-
-class FdwFunctionSequenceError(
-    OperationalError, code="HV010", name="FDW_FUNCTION_SEQUENCE_ERROR"
-):
+class FdwFunctionSequenceError(OperationalError,
+    code='HV010', name='FDW_FUNCTION_SEQUENCE_ERROR'):
     pass
 
-
-class FdwTooManyHandles(OperationalError, code="HV014", name="FDW_TOO_MANY_HANDLES"):
+class FdwTooManyHandles(OperationalError,
+    code='HV014', name='FDW_TOO_MANY_HANDLES'):
     pass
 
-
-class FdwInconsistentDescriptorInformation(
-    OperationalError, code="HV021", name="FDW_INCONSISTENT_DESCRIPTOR_INFORMATION"
-):
+class FdwInconsistentDescriptorInformation(OperationalError,
+    code='HV021', name='FDW_INCONSISTENT_DESCRIPTOR_INFORMATION'):
     pass
 
-
-class FdwInvalidAttributeValue(
-    OperationalError, code="HV024", name="FDW_INVALID_ATTRIBUTE_VALUE"
-):
+class FdwInvalidAttributeValue(OperationalError,
+    code='HV024', name='FDW_INVALID_ATTRIBUTE_VALUE'):
     pass
 
-
-class FdwInvalidStringLengthOrBufferLength(
-    OperationalError, code="HV090", name="FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH"
-):
+class FdwInvalidStringLengthOrBufferLength(OperationalError,
+    code='HV090', name='FDW_INVALID_STRING_LENGTH_OR_BUFFER_LENGTH'):
     pass
 
-
-class FdwInvalidDescriptorFieldIdentifier(
-    OperationalError, code="HV091", name="FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER"
-):
+class FdwInvalidDescriptorFieldIdentifier(OperationalError,
+    code='HV091', name='FDW_INVALID_DESCRIPTOR_FIELD_IDENTIFIER'):
     pass
 
 
 # Class P0 - PL/pgSQL Error
 
-
-class PlpgsqlError(ProgrammingError, code="P0000", name="PLPGSQL_ERROR"):
+class PlpgsqlError(ProgrammingError,
+    code='P0000', name='PLPGSQL_ERROR'):
     pass
 
-
-class RaiseException(ProgrammingError, code="P0001", name="RAISE_EXCEPTION"):
+class RaiseException(ProgrammingError,
+    code='P0001', name='RAISE_EXCEPTION'):
     pass
 
-
-class NoDataFound(ProgrammingError, code="P0002", name="NO_DATA_FOUND"):
+class NoDataFound(ProgrammingError,
+    code='P0002', name='NO_DATA_FOUND'):
     pass
 
-
-class TooManyRows(ProgrammingError, code="P0003", name="TOO_MANY_ROWS"):
+class TooManyRows(ProgrammingError,
+    code='P0003', name='TOO_MANY_ROWS'):
     pass
 
-
-class AssertFailure(ProgrammingError, code="P0004", name="ASSERT_FAILURE"):
+class AssertFailure(ProgrammingError,
+    code='P0004', name='ASSERT_FAILURE'):
     pass
 
 
 # Class XX - Internal Error
 
-
-class InternalError_(InternalError, code="XX000", name="INTERNAL_ERROR"):
+class InternalError_(InternalError,
+    code='XX000', name='INTERNAL_ERROR'):
     pass
 
-
-class DataCorrupted(InternalError, code="XX001", name="DATA_CORRUPTED"):
+class DataCorrupted(InternalError,
+    code='XX001', name='DATA_CORRUPTED'):
     pass
 
-
-class IndexCorrupted(InternalError, code="XX002", name="INDEX_CORRUPTED"):
+class IndexCorrupted(InternalError,
+    code='XX002', name='INDEX_CORRUPTED'):
     pass
 
 
 # autogenerated: end
+# fmt: on
index 77733d4f74e39de342c1f27ac7ce1d7b85245700..494b53ab324512d305c56c9c47733aba836c2b9b 100644 (file)
@@ -8,8 +8,8 @@ isolated_build = True
 #   run had no failure
 # - `--no-collect-ok` changes the exit value from 5 to 0 if not test was
 #   collected (because the previous run was successful)
-# - the `-` in front of the first two commands in toxmakes it ignore failures,
-#   so that only the exit stastus of the last command is considered.
+# - the `-` in front of the first two commands in tox makes it ignore failures,
+#   so that only the exit status of the last command is considered.
 #
 # This is *slightly* more complicated than what I'd hoped, but, ok.
 
@@ -35,3 +35,6 @@ deps =
 [flake8]
 max-line-length = 88
 ignore = W503, E203
+per-file-ignores =
+    # Autogenerated section
+    psycopg/errors.py: E125, E128, E302
index d81220a8e8b47db589d0997ea38d6f8aa78f21ec..c9f0820f76a8eb5774b7dd5cf2647bedd87e1961 100755 (executable)
@@ -12,7 +12,6 @@ import os
 import re
 import sys
 import logging
-import subprocess as sp
 from urllib.request import urlopen
 from collections import defaultdict, namedtuple
 
@@ -28,9 +27,6 @@ def main():
     fn = os.path.dirname(__file__) + "/../psycopg/psycopg/errors.py"
     update_file(fn, generate_module_data(classes, errors))
 
-    logger.info("running black on the resulting module")
-    sp.check_call(["black", fn])
-
     fn = os.path.dirname(__file__) + "/../docs/api/errors.rst"
     update_file(fn, generate_docs_data(classes, errors))
 
@@ -136,15 +132,19 @@ def fetch_errors(versions):
 
 
 def generate_module_data(classes, errors):
-    tmpl = """
-class %(clsname)s(%(basename)s, code=%(sqlstate)r, name=%(errlabel)r):
+    yield ""
+
+    for clscode, clslabel in sorted(classes.items()):
+        yield f"""
+# {clslabel}
+"""
+        for _, e in sorted(errors[clscode].items()):
+            yield f"""\
+class {e.clsname}({e.basename},
+    code={e.sqlstate!r}, name={e.errlabel!r}):
     pass
 """
-    for clscode, clslabel in sorted(classes.items()):
-        yield f"\n# {clslabel}"
-
-        for _, error in sorted(errors[clscode].items()):
-            yield tmpl % error._asdict()
+    yield ""
 
 
 def generate_docs_data(classes, errors):
diff --git a/tox.ini b/tox.ini
index dfa1ab83d3cb053b7078fe6309f0f688606c6996..a8bf30784e1967c278d3899a56e3a537b206a89d 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -36,3 +36,6 @@ deps =
 max-line-length = 88
 ignore = W503, E203
 extend-exclude = .venv
+per-file-ignores =
+    # Autogenerated section
+    psycopg/psycopg/errors.py: E125, E128, E302