blob: 11a042305dd795dc2f0ea8785141bc7f3c09fc09 [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
[tool.pytest.ini_options]
# Pytest it used only to run mypy data tests
python_files = "test_*.yml"
testpaths = [
"pyspark/tests/typing",
"pyspark/sql/tests/typing",
"pyspark/ml/typing",
]
[tool.ruff]
exclude = [
"*/target/*",
"**/*.ipynb",
"docs/.local_ruby_bundle/",
"*python/pyspark/cloudpickle/*.py",
"*python/pyspark/ml/deepspeed/tests/*.py",
"*python/docs/build/*",
"*python/docs/source/conf.py",
"*python/.eggs/*",
"dist/*",
".git/*",
"*python/pyspark/sql/pandas/functions.pyi",
"*python/pyspark/sql/column.pyi",
"*python/pyspark/worker.pyi",
"*python/pyspark/java_gateway.pyi",
"*python/pyspark/sql/connect/proto/*",
"*python/pyspark/sql/streaming/proto/*",
"*venv*/*",
]
[tool.ruff.lint]
ignore = [
"E203", # Skip as black formatter adds a whitespace around ':'.
"E402", # Module top level import is disabled for optional import check, etc.
# TODO
"E721", # Use isinstance for type comparison, too many for now.
"E741", # Ambiguous variables like l, I or O.
]
[tool.ruff.lint.per-file-ignores]
# E501 is ignored as shared.py is auto-generated.
"python/pyspark/ml/param/shared.py" = ["E501"]
# E501 is ignored as we should keep the json string format in error_classes.py.
"python/pyspark/errors/error_classes.py" = ["E501"]
# Examples contain some unused variables.
"examples/src/main/python/sql/datasource.py" = ["F841"]
# Exclude * imports in test files
"python/pyspark/errors/tests/*.py" = ["F403"]
"python/pyspark/logger/tests/*.py" = ["F403"]
"python/pyspark/logger/tests/connect/*.py" = ["F403"]
"python/pyspark/ml/tests/*.py" = ["F403"]
"python/pyspark/mllib/tests/*.py" = ["F403"]
"python/pyspark/pandas/tests/*.py" = ["F401", "F403"]
"python/pyspark/pandas/tests/connect/*.py" = ["F401", "F403"]
"python/pyspark/resource/tests/*.py" = ["F403"]
"python/pyspark/sql/tests/*.py" = ["F403"]
"python/pyspark/streaming/tests/*.py" = ["F403"]
"python/pyspark/tests/*.py" = ["F403"]
"python/pyspark/testing/*.py" = ["F401"]
"python/pyspark/testing/tests/*.py" = ["F403"]
[tool.black]
# When changing the version, we have to update
# GitHub workflow version and dev/reformat-python
required-version = "23.12.1"
line-length = 100
target-version = ['py39']
include = '\.pyi?$'
extend-exclude = 'cloudpickle|error_classes.py'