#
#  Licensed 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.
#
[options]
python_requires = >=3.10

[versioneer]
VCS = git
style = pep440
versionfile_source = src/buildstream/_version.py
versionfile_build = buildstream/_version.py
tag_prefix =
tag_regex = *.*.*
parentdir_prefix = BuildStream-

[tool:pytest]
addopts = --verbose --basetemp ./tmp --durations=20 --timeout=1800
testpaths = tests
norecursedirs = src tests/integration/project tests/plugins/loading tests/plugins/sample-plugins integration-cache tmp __pycache__ .eggs
python_files = tests/*/*.py
env =
    D:BST_TEST_SUITE=True
    D:GRPC_ENABLE_FORK_SUPPORT=0

markers =
    datafiles: data files for tests
    integration: run test only if --integration option is specified
    remoteexecution: run test only if --remote-execution option is specified
    remotecache: run tests only if --remote-cache option is specified
xfail_strict=True

[mypy]
files = src
warn_unused_configs = True
warn_no_return = True

# Ignore missing stubs for third-party packages.
# In future, these should be re-enabled if/when stubs for them become available.
[mypy-copyreg,grpc,pluginbase,psutil,pyroaring,ruamel,multiprocessing.forkserver,pkg_resources.extern]
ignore_missing_imports=True

# Ignore issues with generated files and vendored code
[mypy-buildstream._protos.*,buildstream._version]
ignore_errors = True
