diff --git a/.appveyor.yml b/.appveyor.yml index 149a8a3dc9..85445d41a2 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -19,7 +19,7 @@ install: if ($env:PLATFORM -eq "x64") { $env:PYTHON = "$env:PYTHON-x64" } $env:PATH = "C:\Python$env:PYTHON\;C:\Python$env:PYTHON\Scripts\;$env:PATH" python -W ignore -m pip install --upgrade pip wheel - python -W ignore -m pip install pytest numpy --no-warn-script-location + python -W ignore -m pip install pytest numpy --no-warn-script-location pytest-timeout - ps: | Start-FileDownload 'https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.zip' 7z x eigen-3.3.7.zip -y > $null diff --git a/include/pybind11/iostream.h b/include/pybind11/iostream.h index 7f34bb2010..9dee755431 100644 --- a/include/pybind11/iostream.h +++ b/include/pybind11/iostream.h @@ -52,9 +52,11 @@ class pythonbuf : public std::streambuf { pywrite(line); pyflush(); + + // Placed inside gil_scoped_aquire as a mutex to avoid a race + setp(pbase(), epptr()); } - setp(pbase(), epptr()); } return 0; } diff --git a/setup.cfg b/setup.cfg index 80a361df97..041e62dae6 100644 --- a/setup.cfg +++ b/setup.cfg @@ -63,4 +63,23 @@ ignore = [mypy] files = pybind11 -strict = True +python_version = 2.7 +warn_unused_configs = True + +# Currently (0.800) identical to --strict +disallow_any_generics = True +disallow_subclassing_any = True +disallow_untyped_calls = True +disallow_untyped_defs = True +disallow_incomplete_defs = True +check_untyped_defs = True +disallow_untyped_decorators = True +no_implicit_optional = True +warn_redundant_casts = True +warn_unused_ignores = True +warn_return_any = True +no_implicit_reexport = True +strict_equality = True + +[tool:pytest] +timeout = 300 diff --git a/tests/requirements.txt b/tests/requirements.txt index 0b383bf5c3..8768fc1fc7 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -5,5 +5,6 @@ numpy==1.19.3; (platform_python_implementation!="PyPy" or sys_platform=="linux") pytest==4.6.9; python_version<"3.5" pytest==6.1.2; python_version=="3.5" pytest==6.2.1; python_version>="3.6" +pytest-timeout scipy==1.2.3; (platform_python_implementation!="PyPy" or sys_platform=="linux") and python_version<"3.6" scipy==1.5.4; (platform_python_implementation!="PyPy" or sys_platform=="linux") and python_version>="3.6" and python_version<"3.10"