diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cc69ee4..48c0ef6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,10 +46,10 @@ jobs: steps: - uses: actions/checkout@v7 - - name: Set up Python 3.10 + - name: Set up Python 3.14 uses: actions/setup-python@v7 with: - python-version: "3.10" + python-version: "3.14" cache: "pip" cache-dependency-path: ".pre-commit-config.yaml" @@ -73,10 +73,10 @@ jobs: steps: - uses: actions/checkout@v7 - - name: Set up Python 3.10 + - name: Set up Python 3.14 uses: actions/setup-python@v7 with: - python-version: "3.10" + python-version: "3.14" cache: "pip" cache-dependency-path: "requirements*.txt" @@ -183,10 +183,10 @@ jobs: with: path: lab-validation - - name: Set up Python 3.10 + - name: Set up Python 3.14 uses: actions/setup-python@v7 with: - python-version: "3.10" + python-version: "3.14" cache: "pip" cache-dependency-path: "requirements*.txt" diff --git a/.github/workflows/reusable-lab-validation.yml b/.github/workflows/reusable-lab-validation.yml index ea01f27..9c93040 100644 --- a/.github/workflows/reusable-lab-validation.yml +++ b/.github/workflows/reusable-lab-validation.yml @@ -126,10 +126,10 @@ jobs: repository: batfish/lab-validation path: lab-validation - - name: Set up Python 3.10 + - name: Set up Python 3.14 uses: actions/setup-python@v7 with: - python-version: "3.10" + python-version: "3.14" cache: "pip" cache-dependency-path: "requirements*.txt" diff --git a/CLAUDE.md b/CLAUDE.md index 753a47d..4a84749 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -131,7 +131,7 @@ GitHub Actions runs matrix strategy testing all labs in parallel, with Batfish J ## Coding Conventions -- **Python 3.10+** required (supports 3.10, 3.11, 3.12) +- **Python 3.14+** required - **Pre-commit hooks** required for consistent code quality - **Parser error handling**: parsers should crash (assert, KeyError) on unexpected data shapes rather than silently degrading with `.get()` diff --git a/README.md b/README.md index f7480ea..84053c5 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ This framework implements comprehensive multi-level benchmarking to validate Bat ### Requirements -- Python 3.10+ +- Python 3.14+ - Pybatfish - Batfish server running locally (see [development setup instructions](https://github.com/batfish/batfish/tree/master/docs/development)) diff --git a/mypy.ini b/mypy.ini index c0aaab4..d5e5e99 100644 --- a/mypy.ini +++ b/mypy.ini @@ -1,5 +1,5 @@ [mypy] -python_version = 3.10 +python_version = 3.14 warn_return_any = True warn_unused_configs = True disallow_untyped_defs = True diff --git a/pyproject.toml b/pyproject.toml index b1cd8ee..a2dc92a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta" name = "lab-validation" description = "Lab validation framework for Batfish network analysis" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.14" license = {file = "LICENSE"} authors = [ {name = "Batfish Team"}, @@ -17,9 +17,7 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.14", "Topic :: System :: Networking", ] dependencies = [ @@ -67,7 +65,7 @@ where = ["src"] [tool.black] line-length = 88 -target-version = ['py310'] +target-version = ['py314'] include = '\.pyi?$' extend-exclude = ''' /( @@ -84,7 +82,7 @@ extend-exclude = ''' ''' [tool.mypy] -python_version = "3.10" +python_version = "3.14" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true @@ -134,7 +132,7 @@ exclude_lines = [ line-length = 88 # Python version compatibility -target-version = "py310" +target-version = "py314" [tool.ruff.lint] # Enable rules that replace the tools we're removing: