python: update minimum version in packaging metadata

We stopped generating the 3.9 wheel but forgot to update the
setup.py minimum.

Also, generate wheels for macOS 26.
diff --git a/.github/workflows/ci-bazel.yml b/.github/workflows/ci-bazel.yml
index ca45b9b..82e0c06 100644
--- a/.github/workflows/ci-bazel.yml
+++ b/.github/workflows/ci-bazel.yml
@@ -11,6 +11,7 @@
       fail-fast: false
       matrix:
         os: [macos-latest, ubuntu-latest, windows-latest]
+        # Keep in sync with python.yml.
         ver: ['3.10', '3.11', '3.12', '3.13', '3.14']
     env:
       BAZELISK_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml
index e0c4c92..55aee2c 100644
--- a/.github/workflows/python.yml
+++ b/.github/workflows/python.yml
@@ -28,6 +28,8 @@
           - { name: X64,   python-name: x86_64,  runs-on: [ubuntu-latest]              }
           - { name: ARM64, python-name: aarch64, runs-on: [ubuntu-24.04-arm] }
         os: [manylinux_2_28]
+        # Keep in sync with ci-bazel.yml and list below.
+        # Also, when bumping the minimum version, update ../../python/setup.py.
         ver: ['3.10', '3.11', '3.12', '3.13', '3.14']
     env:
       BAZELISK_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -83,7 +85,7 @@
           - { name: ARM64, bazel-name: arm64,  python-name: arm64  }
         # TODO(rsc): Stop cross-compiling now that we don't use macOS 12.
         # instead, specify `-large` suffix on X64 and `-xlarge` suffix on ARM64.
-        os: [13, 14, 15]
+        os: [13, 14, 15, 26]
         ver: ['3.10', '3.11', '3.12', '3.13', '3.14']
     env:
       BAZELISK_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/python/setup.py b/python/setup.py
index 42d6036..94d5bc7 100644
--- a/python/setup.py
+++ b/python/setup.py
@@ -139,16 +139,17 @@
       packages=[PACKAGE],
       ext_package=PACKAGE,
       ext_modules=[ext_module],
+      # Note: Keep the minimum Python version, which appears twice below, in sync with ../.github/workflows/python.yml.
       classifiers=[
           'Development Status :: 5 - Production/Stable',
           'Intended Audience :: Developers',
           'License :: OSI Approved :: BSD License',
           'Programming Language :: C++',
-          'Programming Language :: Python :: 3.9',
+          'Programming Language :: Python :: 3.10',
       ],
       options=options(),
       cmdclass={'build_ext': BuildExt},
-      python_requires='~=3.9',
+      python_requires='~=3.10',
   )
 except:
   raise