diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 494a43f21..c93ca5f79 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -36,11 +36,11 @@ jobs: strategy: fail-fast: true matrix: - python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] os: [ubuntu-latest, windows-latest, macos-15-intel, macos-latest] include: # Only run slow tests on the latest version of Python - - python-version: "3.13" + - python-version: "3.14" slow: true runs-on: ${{ matrix.os }} @@ -63,6 +63,7 @@ jobs: uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 with: python-version: ${{ matrix.python-version }} + allow-prereleases: true cache: 'pip' - name: Update pip diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 703fabe41..4f86e1d46 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,10 +3,10 @@ repos: rev: 25.1.0 hooks: - id: black - language_version: python3.13 + language_version: python3.14 - repo: https://github.com/pycqa/isort rev: 5.12.0 hooks: - id: isort - language_version: python3.13 + language_version: python3.14 diff --git a/docs/conf.py b/docs/conf.py index 02628a3ec..cbb53d094 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -605,7 +605,9 @@ def add_directive_header(self, sig): orig_object_description = sphinx.util.inspect.object_description -def object_description(obj): +def object_description(obj, **kwargs): + # Accept **kwargs to support Sphinx ≥7.2, which passes the `_seen` argument + # to object_description. This ensures compatibility across Sphinx versions. if obj is scenic.core.regions.nowhere or obj is scenic.core.regions.everywhere: return str(obj) elif isinstance( @@ -622,7 +624,7 @@ def object_description(obj): elif obj is sys.stderr: return "sys.stderr" else: - return orig_object_description(obj) + return orig_object_description(obj, **kwargs) sphinx.util.inspect.object_description = object_description diff --git a/docs/simulators.rst b/docs/simulators.rst index 0887a0cfe..ee5d0b0d1 100644 --- a/docs/simulators.rst +++ b/docs/simulators.rst @@ -10,6 +10,10 @@ On this page we list interfaces that we and others have developed; if you have a Note that not every interface supports all Scenic features: in particular, some interfaces do not support dynamic scenarios. See the individual entries for details on each interface's capabilities and how to set it up. +.. note:: + While Scenic aims to support multiple Python versions, some simulators may have more limited compatibility. + Be sure to check the documentation of each simulator to confirm which Python versions are supported. + .. contents:: List of Simulators :local: diff --git a/pyproject.toml b/pyproject.toml index ef8945493..2b6732727 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,8 +38,8 @@ dependencies = [ "opencv-python ~= 4.5", "pegen >= 0.3.0", "pillow >= 9.1", - 'pygame >= 2.1.3.dev8, <3; python_version >= "3.11"', - 'pygame ~= 2.0; python_version < "3.11"', + 'pygame-ce >= 2.5.7, <3; python_version >= "3.10"', + 'pygame ~= 2.0; python_version < "3.10"', "pyglet >= 1.5, <= 1.5.26", "python-fcl >= 0.7", "Rtree ~= 1.0", @@ -67,16 +67,17 @@ test = [ # minimum dependencies for running tests (used for tox virtualenvs) test-full = [ # like 'test' but adds dependencies for optional features "scenic[test]", # all dependencies from 'test' extra above "scenic[guideways]", # for running guideways modules - 'scenic[metadrive]; python_version < "3.12"', # MetaDrive not on PyPI for Py3.12+ yet; use GitHub (see docs) "astor >= 0.8.1", - 'carla >= 0.9.12; python_version <= "3.10" and (platform_system == "Linux" or platform_system == "Windows")', + 'carla >= 0.9.12; python_version <= "3.12" and (platform_system == "Linux" or platform_system == "Windows")', "dill", "exceptiongroup", "inflect ~= 5.5", + 'metadrive-simulator >= 0.4.3; python_version <= "3.11"', # listed directly (not scenic[metadrive]) to work around tox issue that ignored the python_version<=3.11 guard "pygments ~= 2.11", - "sphinx >= 6.2.0, <7.2.0", + "sphinx >= 6.2.0, <8", "sphinx_rtd_theme >= 0.5.2", "sphinx-tabs ~= 3.4.1", + 'sumolib >= 1.21.0; python_version <= "3.11"', # required for MetaDrive "verifai >= 2.1.0b1", ] dev = [ diff --git a/tox.ini b/tox.ini index d4f9392dd..19ed9d3f8 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,7 @@ [tox] -envlist = py{38,39,310,311,312,313}{,-extras} +envlist = py{38,39,310,311,312,313,314}{,-extras} labels = - basic = py{38,39,310,311,312,313} + basic = py{38,39,310,311,312,313,314} [testenv] extras =