pyproject.toml (181 lines of code) (raw):
# Copyright (c) 2022, 2024, Oracle and/or its affiliates.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2.0, as
# published by the Free Software Foundation.
#
# This program is designed to work with certain software (including
# but not limited to OpenSSL) that is licensed under separate terms,
# as designated in a particular file or component or in included license
# documentation. The authors of MySQL hereby grant you an
# additional permission to link the program and your derivative works
# with the separately licensed software that they have either included with
# the program or referenced in the documentation.
#
# Without limiting anything contained in the foregoing, this file,
# which is part of MySQL Connector/Python, is also subject to the
# Universal FOSS Exception, version 1.0, a copy of which can be found at
# http://oss.oracle.com/licenses/universal-foss-exception.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License, version 2.0, for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
[build-system]
requires = ['setuptools', 'wheel']
build-backend = 'setuptools.build_meta'
[tool.isort]
profile = 'black'
combine_as_imports = true
known_first_party = ['mysql.connector', 'mysqlx']
line_length = 88
lines_between_types = 1
skip_glob = [
'mysql-connector-python/build/*',
'mysqlx-connector-python/build/*',
'mysql-connector-python/dist/*',
'mysqlx-connector-python/dist/*',
'mysql-connector-python/docs/*',
'mysqlx-connector-python/docs/*',
'mysql-connector-python/lib/mysql/connector/locales/eng',
'mysqlx-connector-python/lib/mysqlx/locales/eng',
'mysqlx-connector-python/lib/mysqlx/protobuf',
'mysqlx-connector-python/lib/mysqlx/tls_ciphers.py',
'mysql-connector-python/lib/mysql/tls_ciphers.py',
'venv/*',
]
[tool.black]
line-length = 88
target-version = ['py39']
exclude = '''
(
/(
\.eggs
| \.git
| build
| dist
| docs
| mysql-connector-python/lib/mysql/connector/locales/eng
| mysql-connector-python/lib/mysql/opentelemetry
| mysqlx-connector-python/lib/mysqlx/locales/eng
| venv
)/
| mysql-connector-python/lib/mysql/connector/opentelemetry/instrumentation.py
| mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_connection_pb2.py
| mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_crud_pb2.py
| mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_cursor_pb2.py
| mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_datatypes_pb2.py
| mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_expect_pb2.py
| mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_expr_pb2.py
| mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_notice_pb2.py
| mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_pb2.py
| mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_prepare_pb2.py
| mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_resultset_pb2.py
| mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_session_pb2.py
| mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_sql_pb2.py
)
'''
[tool.coverage.run]
branch = true
omit = [
'*/dist-packages/*',
'*/site-packages/*',
'mysql-connector-python/cpydist/*',
'mysqlx-connector-python/cpydist/*',
'mysql-connector-python/examples/*',
'setupinfo.py',
'mysql-connector-python/tests/*',
'mysqlx-connector-python/tests/*',
'mysql-connector-python/unittests.py',
'mysqlx-connector-python/unittests.py',
'mysql-connector-python/lib/mysql/opentelemetry/*',
]
[tool.coverage.html]
directory = 'build/coverage_html'
[tool.coverage.xml]
output = 'build/coverage.xml'
[tool.pylint.master]
load-plugins = ['pylint.extensions.overlapping_exceptions']
ignore-paths = ['mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_*', 'mysql-connector-python/lib/mysql/opentelemetry']
init-hook = 'import sys; sys.path.append("mysql-connector-python/lib"); sys.path.append("mysqlx-connector-python/lib")'
[tool.pylint.messages_control]
disable = [
'duplicate-code',
'import-outside-toplevel',
'too-few-public-methods',
'too-many-ancestors',
'too-many-arguments',
'too-many-branches',
'too-many-instance-attributes',
'too-many-lines',
'too-many-locals',
'too-many-nested-blocks',
'too-many-public-methods',
'too-many-return-statements',
'too-many-statements',
'wrong-import-order',
'wrong-import-position',
'too-many-positional-arguments',
'protected-access',
]
[tool.pylint.format]
good-names = ["i", "f", "db", "dt", "ca", "hi", "pw"]
[tool.mypy]
# https://mypy.readthedocs.io/en/stable/command_line.html
# https://mypy.readthedocs.io/en/stable/config_file.html#using-a-pyproject-toml-file
python_version = 3.9
disallow_untyped_defs = true
show_error_codes = true
warn_unused_ignores = true
allow_redefinition = true
no_strict_optional = true
no_implicit_optional = true
files = [
'mysql-connector-python/lib/mysql',
'mysqlx-connector-python/lib/mysqlx',
]
exclude = [
'mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_connection_pb2.py',
'mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_crud_pb2.py',
'mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_cursor_pb2.py',
'mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_datatypes_pb2.py',
'mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_expect_pb2.py',
'mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_expr_pb2.py',
'mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_notice_pb2.py',
'mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_pb2.py',
'mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_prepare_pb2.py',
'mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_resultset_pb2.py',
'mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_session_pb2.py',
'mysqlx-connector-python/lib/mysqlx/protobuf/mysqlx_sql_pb2.py',
'mysql-connector-python/lib/mysql/opentelemetry',
]
[[tool.mypy.overrides]]
module = [
'_mysql_connector',
'_mysqlxpb',
'cryptography.*',
'dns.*',
'google.*',
'lz4.*',
'mysql.*',
'mysqlx.protobuf',
'oci',
'sqlparse',
'sspi',
'sspicon',
'opentelemetry',
'opentelemetry.*',
'fido2.*',
'lib.mysql.connector.aio.connection_cext',
]
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = [
'lib.mysql.opentelemetry',
'lib.mysql.opentelemetry.*',
]
ignore_errors = true