Metadata-Version: 2.4
Name: maxtext
Version: 0.2.2
Summary: MaxText is a simple, performant and scalable Jax LLM!
Project-URL: Repository, https://github.com/AI-Hypercomputer/maxtext.git
Project-URL: Bug Tracker, https://github.com/AI-Hypercomputer/maxtext/issues
License-Expression: Apache-2.0
License-File: AUTHORS
License-File: LICENSE
License-File: LICENSE_HEADER
Keywords: deepseek,gemma,jax,llama,llm,mistral,mixtral
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: GPU :: NVIDIA CUDA :: 12
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: ML
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.12
Provides-Extra: cuda12
Requires-Dist: absl-py>=2.4.0; extra == 'cuda12'
Requires-Dist: aiofiles>=25.1.0; extra == 'cuda12'
Requires-Dist: aiohappyeyeballs>=2.6.1; extra == 'cuda12'
Requires-Dist: aiohttp>=3.13.5; extra == 'cuda12'
Requires-Dist: aiosignal>=1.4.0; extra == 'cuda12'
Requires-Dist: annotated-doc>=0.0.4; extra == 'cuda12'
Requires-Dist: annotated-types>=0.7.0; extra == 'cuda12'
Requires-Dist: antlr4-python3-runtime>=4.9.3; extra == 'cuda12'
Requires-Dist: anyio>=4.13.0; extra == 'cuda12'
Requires-Dist: aqtp>=0.9.0; extra == 'cuda12'
Requires-Dist: array-record>=0.8.3; extra == 'cuda12'
Requires-Dist: astroid>=4.0.4; extra == 'cuda12'
Requires-Dist: astunparse>=1.6.3; extra == 'cuda12'
Requires-Dist: attrs>=25.4.0; extra == 'cuda12'
Requires-Dist: auditwheel>=6.6.0; extra == 'cuda12'
Requires-Dist: black>=25.12.0; extra == 'cuda12'
Requires-Dist: build>=1.4.0; extra == 'cuda12'
Requires-Dist: certifi>=2026.2.25; extra == 'cuda12'
Requires-Dist: cffi>=2.0.0; (platform_python_implementation != 'PyPy') and extra == 'cuda12'
Requires-Dist: cfgv>=3.5.0; extra == 'cuda12'
Requires-Dist: charset-normalizer>=3.4.6; extra == 'cuda12'
Requires-Dist: chex>=0.1.91; extra == 'cuda12'
Requires-Dist: click>=8.3.3; extra == 'cuda12'
Requires-Dist: cloud-accelerator-diagnostics>=0.1.1; extra == 'cuda12'
Requires-Dist: cloud-tpu-diagnostics>=0.1.5; extra == 'cuda12'
Requires-Dist: cloudpickle>=3.1.2; extra == 'cuda12'
Requires-Dist: clu>=0.0.12; extra == 'cuda12'
Requires-Dist: colorama>=0.4.6; extra == 'cuda12'
Requires-Dist: contourpy>=1.3.3; extra == 'cuda12'
Requires-Dist: cryptography>=47.0.0; extra == 'cuda12'
Requires-Dist: cycler>=0.12.1; extra == 'cuda12'
Requires-Dist: dataclasses-json>=0.6.7; extra == 'cuda12'
Requires-Dist: datasets>=4.8.5; extra == 'cuda12'
Requires-Dist: decorator>=5.2.1; extra == 'cuda12'
Requires-Dist: deprecated>=1.3.1; extra == 'cuda12'
Requires-Dist: dill>=0.4.1; extra == 'cuda12'
Requires-Dist: distlib>=0.4.0; extra == 'cuda12'
Requires-Dist: distro>=1.9.0; extra == 'cuda12'
Requires-Dist: dm-tree>=0.1.10; extra == 'cuda12'
Requires-Dist: docstring-parser>=0.18.0; extra == 'cuda12'
Requires-Dist: drjax>=0.1.4; extra == 'cuda12'
Requires-Dist: editdistance>=0.8.1; extra == 'cuda12'
Requires-Dist: einops>=0.8.2; extra == 'cuda12'
Requires-Dist: einshape>=1.0; extra == 'cuda12'
Requires-Dist: etils>=1.14.0; extra == 'cuda12'
Requires-Dist: execnet>=2.1.2; extra == 'cuda12'
Requires-Dist: fastapi>=0.136.1; extra == 'cuda12'
Requires-Dist: filelock>=3.20.3; extra == 'cuda12'
Requires-Dist: flatbuffers>=25.12.19; extra == 'cuda12'
Requires-Dist: flax>=0.12.6; extra == 'cuda12'
Requires-Dist: fonttools>=4.62.1; extra == 'cuda12'
Requires-Dist: frozenlist>=1.8.0; extra == 'cuda12'
Requires-Dist: fsspec>=2026.2.0; extra == 'cuda12'
Requires-Dist: gast>=0.7.0; extra == 'cuda12'
Requires-Dist: gcsfs>=2026.2.0; extra == 'cuda12'
Requires-Dist: google-api-core>=2.30.3; extra == 'cuda12'
Requires-Dist: google-api-python-client>=2.194.0; extra == 'cuda12'
Requires-Dist: google-auth-httplib2>=0.3.1; extra == 'cuda12'
Requires-Dist: google-auth-oauthlib>=1.3.1; extra == 'cuda12'
Requires-Dist: google-auth>=2.49.2; extra == 'cuda12'
Requires-Dist: google-cloud-aiplatform>=1.148.1; extra == 'cuda12'
Requires-Dist: google-cloud-appengine-logging>=1.9.0; extra == 'cuda12'
Requires-Dist: google-cloud-audit-log>=0.5.0; extra == 'cuda12'
Requires-Dist: google-cloud-bigquery>=3.41.0; extra == 'cuda12'
Requires-Dist: google-cloud-core>=2.5.1; extra == 'cuda12'
Requires-Dist: google-cloud-logging>=3.15.0; extra == 'cuda12'
Requires-Dist: google-cloud-mldiagnostics>=1.0.2; extra == 'cuda12'
Requires-Dist: google-cloud-monitoring>=2.30.0; extra == 'cuda12'
Requires-Dist: google-cloud-resource-manager>=1.17.0; extra == 'cuda12'
Requires-Dist: google-cloud-storage-control>=1.11.0; extra == 'cuda12'
Requires-Dist: google-cloud-storage>=3.10.1; extra == 'cuda12'
Requires-Dist: google-crc32c>=1.8.0; extra == 'cuda12'
Requires-Dist: google-genai>=1.73.1; extra == 'cuda12'
Requires-Dist: google-pasta>=0.2.0; extra == 'cuda12'
Requires-Dist: google-resumable-media>=2.8.2; extra == 'cuda12'
Requires-Dist: googleapis-common-protos>=1.74.0; extra == 'cuda12'
Requires-Dist: grain>=0.2.16; extra == 'cuda12'
Requires-Dist: grpc-google-iam-v1>=0.14.4; extra == 'cuda12'
Requires-Dist: grpcio-status>=1.78.0; extra == 'cuda12'
Requires-Dist: grpcio>=1.78.0; extra == 'cuda12'
Requires-Dist: gviz-api>=1.10.0; extra == 'cuda12'
Requires-Dist: h11>=0.16.0; extra == 'cuda12'
Requires-Dist: h5py>=3.14.0; extra == 'cuda12'
Requires-Dist: hf-xet>=1.4.3; (platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64') and extra == 'cuda12'
Requires-Dist: httpcore>=1.0.9; extra == 'cuda12'
Requires-Dist: httplib2>=0.31.2; extra == 'cuda12'
Requires-Dist: httpx>=0.28.1; extra == 'cuda12'
Requires-Dist: huggingface-hub>=1.12.0; extra == 'cuda12'
Requires-Dist: humanize>=4.15.0; extra == 'cuda12'
Requires-Dist: hypothesis>=6.142.1; extra == 'cuda12'
Requires-Dist: identify>=2.6.19; extra == 'cuda12'
Requires-Dist: idna>=3.11; extra == 'cuda12'
Requires-Dist: immutabledict>=4.3.1; extra == 'cuda12'
Requires-Dist: importlab>=0.8.1; extra == 'cuda12'
Requires-Dist: importlib-metadata>=9.0.0; extra == 'cuda12'
Requires-Dist: iniconfig>=2.3.0; extra == 'cuda12'
Requires-Dist: isort>=8.0.1; extra == 'cuda12'
Requires-Dist: jax-cuda12-pjrt>=0.9.2; (sys_platform == 'linux') and extra == 'cuda12'
Requires-Dist: jax-cuda12-plugin>=0.9.2; (sys_platform == 'linux') and extra == 'cuda12'
Requires-Dist: jax>=0.9.2; extra == 'cuda12'
Requires-Dist: jaxlib>=0.9.2; extra == 'cuda12'
Requires-Dist: jaxtyping>=0.3.9; extra == 'cuda12'
Requires-Dist: jinja2>=3.1.6; extra == 'cuda12'
Requires-Dist: jsonlines>=4.0.0; extra == 'cuda12'
Requires-Dist: keras>=3.13.2; extra == 'cuda12'
Requires-Dist: kiwisolver>=1.5.0; extra == 'cuda12'
Requires-Dist: latex2sympy2-extended>=1.11.0; extra == 'cuda12'
Requires-Dist: libclang>=18.1.1; extra == 'cuda12'
Requires-Dist: libcst>=1.8.6; extra == 'cuda12'
Requires-Dist: markdown-it-py>=4.0.0; extra == 'cuda12'
Requires-Dist: markdown>=3.10.2; extra == 'cuda12'
Requires-Dist: markupsafe>=3.0.3; extra == 'cuda12'
Requires-Dist: marshmallow>=3.26.2; extra == 'cuda12'
Requires-Dist: math-verify>=0.9.0; extra == 'cuda12'
Requires-Dist: matplotlib>=3.10.8; extra == 'cuda12'
Requires-Dist: mccabe>=0.7.0; extra == 'cuda12'
Requires-Dist: mdurl>=0.1.2; extra == 'cuda12'
Requires-Dist: ml-collections>=1.1.0; extra == 'cuda12'
Requires-Dist: ml-dtypes>=0.5.4; extra == 'cuda12'
Requires-Dist: ml-goodput-measurement>=0.0.16; extra == 'cuda12'
Requires-Dist: mpmath>=1.3.0; extra == 'cuda12'
Requires-Dist: msgpack>=1.1.2; extra == 'cuda12'
Requires-Dist: msgspec>=0.21.1; extra == 'cuda12'
Requires-Dist: multidict>=6.7.1; extra == 'cuda12'
Requires-Dist: multiprocess>=0.70.19; extra == 'cuda12'
Requires-Dist: mypy-extensions>=1.1.0; extra == 'cuda12'
Requires-Dist: namex>=0.1.0; extra == 'cuda12'
Requires-Dist: nest-asyncio>=1.6.0; (sys_platform == 'win32') and extra == 'cuda12'
Requires-Dist: networkx>=3.6.1; extra == 'cuda12'
Requires-Dist: ninja>=1.13.0; extra == 'cuda12'
Requires-Dist: nodeenv>=1.10.0; extra == 'cuda12'
Requires-Dist: numpy-typing-compat>=20251206.2.0; extra == 'cuda12'
Requires-Dist: numpy>=2.0.2; extra == 'cuda12'
Requires-Dist: nvidia-cublas-cu12>=12.9.1.4; (sys_platform == 'linux') and extra == 'cuda12'
Requires-Dist: nvidia-cuda-cccl-cu12>=12.9.27; extra == 'cuda12'
Requires-Dist: nvidia-cuda-cccl>=13.2.27; extra == 'cuda12'
Requires-Dist: nvidia-cuda-cupti-cu12>=12.9.79; (sys_platform == 'linux') and extra == 'cuda12'
Requires-Dist: nvidia-cuda-nvcc-cu12>=12.9.86; (sys_platform == 'linux') and extra == 'cuda12'
Requires-Dist: nvidia-cuda-nvrtc-cu12>=12.9.86; (sys_platform == 'linux') and extra == 'cuda12'
Requires-Dist: nvidia-cuda-runtime-cu12>=12.9.79; (sys_platform == 'linux') and extra == 'cuda12'
Requires-Dist: nvidia-cudnn-cu12>=9.20.0.48; (sys_platform == 'linux') and extra == 'cuda12'
Requires-Dist: nvidia-cufft-cu12>=11.4.1.4; (sys_platform == 'linux') and extra == 'cuda12'
Requires-Dist: nvidia-cusolver-cu12>=11.7.5.82; (sys_platform == 'linux') and extra == 'cuda12'
Requires-Dist: nvidia-cusparse-cu12>=12.5.10.65; (sys_platform == 'linux') and extra == 'cuda12'
Requires-Dist: nvidia-nccl-cu12>=2.29.7; (sys_platform == 'linux') and extra == 'cuda12'
Requires-Dist: nvidia-nvjitlink-cu12>=12.9.86; (sys_platform == 'linux') and extra == 'cuda12'
Requires-Dist: nvidia-nvshmem-cu12>=3.5.21; (sys_platform == 'linux') and extra == 'cuda12'
Requires-Dist: oauthlib>=3.3.1; extra == 'cuda12'
Requires-Dist: omegaconf>=2.3.0; extra == 'cuda12'
Requires-Dist: opentelemetry-api>=1.16.0; extra == 'cuda12'
Requires-Dist: opt-einsum>=3.4.0; extra == 'cuda12'
Requires-Dist: optax>=0.2.8; extra == 'cuda12'
Requires-Dist: optree>=0.19.0; extra == 'cuda12'
Requires-Dist: optype>=0.17.0; extra == 'cuda12'
Requires-Dist: orbax-checkpoint>=0.11.36; extra == 'cuda12'
Requires-Dist: orbax-export>=0.0.8; extra == 'cuda12'
Requires-Dist: packaging>=26.0; extra == 'cuda12'
Requires-Dist: pandas>=3.0.2; extra == 'cuda12'
Requires-Dist: parameterized>=0.9.0; extra == 'cuda12'
Requires-Dist: pathspec>=1.1.1; extra == 'cuda12'
Requires-Dist: pathwaysutils>=0.1.8; extra == 'cuda12'
Requires-Dist: pillow>=12.1.1; extra == 'cuda12'
Requires-Dist: platformdirs>=4.9.6; extra == 'cuda12'
Requires-Dist: pluggy>=1.6.0; extra == 'cuda12'
Requires-Dist: portpicker>=1.6.0; extra == 'cuda12'
Requires-Dist: pre-commit>=4.6.0; extra == 'cuda12'
Requires-Dist: promise>=2.3; extra == 'cuda12'
Requires-Dist: propcache>=0.4.1; extra == 'cuda12'
Requires-Dist: proto-plus>=1.27.2; extra == 'cuda12'
Requires-Dist: protobuf>=6.33.6; extra == 'cuda12'
Requires-Dist: psutil>=7.2.2; extra == 'cuda12'
Requires-Dist: pyarrow>=24.0.0; extra == 'cuda12'
Requires-Dist: pyasn1-modules>=0.4.2; extra == 'cuda12'
Requires-Dist: pyasn1>=0.6.3; extra == 'cuda12'
Requires-Dist: pycnite>=2024.7.31; extra == 'cuda12'
Requires-Dist: pycparser>=3.0; (implementation_name != 'PyPy' and platform_python_implementation != 'PyPy') and extra == 'cuda12'
Requires-Dist: pydantic-core>=2.46.3; extra == 'cuda12'
Requires-Dist: pydantic>=2.13.3; extra == 'cuda12'
Requires-Dist: pydot>=4.0.1; extra == 'cuda12'
Requires-Dist: pyelftools>=0.32; extra == 'cuda12'
Requires-Dist: pyglove>=0.4.5; extra == 'cuda12'
Requires-Dist: pygments>=2.19.2; extra == 'cuda12'
Requires-Dist: pyink>=25.12.0; extra == 'cuda12'
Requires-Dist: pylint>=4.0.5; extra == 'cuda12'
Requires-Dist: pyparsing>=3.3.2; extra == 'cuda12'
Requires-Dist: pyproject-hooks>=1.2.0; extra == 'cuda12'
Requires-Dist: pytest-xdist>=3.8.0; extra == 'cuda12'
Requires-Dist: pytest>=8.4.2; extra == 'cuda12'
Requires-Dist: python-dateutil>=2.9.0.post0; extra == 'cuda12'
Requires-Dist: pytokens>=0.4.1; extra == 'cuda12'
Requires-Dist: pytype>=2024.10.11; extra == 'cuda12'
Requires-Dist: pyyaml>=6.0.3; extra == 'cuda12'
Requires-Dist: qwix>=0.1.6; extra == 'cuda12'
Requires-Dist: regex>=2026.4.4; extra == 'cuda12'
Requires-Dist: requests-oauthlib>=2.0.0; extra == 'cuda12'
Requires-Dist: requests>=2.32.5; extra == 'cuda12'
Requires-Dist: rich>=14.3.3; extra == 'cuda12'
Requires-Dist: safetensors>=0.7.0; extra == 'cuda12'
Requires-Dist: scipy-stubs>=1.17.1.2; extra == 'cuda12'
Requires-Dist: scipy>=1.17.1; extra == 'cuda12'
Requires-Dist: sentencepiece>=0.2.1; extra == 'cuda12'
Requires-Dist: seqio>=0.0.20; extra == 'cuda12'
Requires-Dist: setuptools>=82.0.1; extra == 'cuda12'
Requires-Dist: shellingham>=1.5.4; extra == 'cuda12'
Requires-Dist: simple-parsing>=0.1.8; extra == 'cuda12'
Requires-Dist: simplejson>=4.1.1; extra == 'cuda12'
Requires-Dist: six>=1.17.0; extra == 'cuda12'
Requires-Dist: sniffio>=1.3.1; extra == 'cuda12'
Requires-Dist: sortedcontainers>=2.4.0; extra == 'cuda12'
Requires-Dist: starlette>=1.0.0; extra == 'cuda12'
Requires-Dist: sympy>=1.14.0; extra == 'cuda12'
Requires-Dist: tabulate>=0.10.0; extra == 'cuda12'
Requires-Dist: tenacity>=9.1.4; extra == 'cuda12'
Requires-Dist: tensorboard-data-server>=0.7.2; extra == 'cuda12'
Requires-Dist: tensorboard-plugin-profile>=2.13.0; extra == 'cuda12'
Requires-Dist: tensorboard>=2.20.0; extra == 'cuda12'
Requires-Dist: tensorboardx>=2.6.5; extra == 'cuda12'
Requires-Dist: tensorflow-datasets>=4.9.9; extra == 'cuda12'
Requires-Dist: tensorflow-metadata>=1.17.3; extra == 'cuda12'
Requires-Dist: tensorflow-text>=2.20.1; extra == 'cuda12'
Requires-Dist: tensorflow>=2.20.0; extra == 'cuda12'
Requires-Dist: tensorstore>=0.1.82; extra == 'cuda12'
Requires-Dist: termcolor>=3.3.0; extra == 'cuda12'
Requires-Dist: tiktoken>=0.12.0; extra == 'cuda12'
Requires-Dist: tokamax>=0.0.12; extra == 'cuda12'
Requires-Dist: tokenizers>=0.22.2; extra == 'cuda12'
Requires-Dist: toml>=0.10.2; extra == 'cuda12'
Requires-Dist: tomlkit>=0.14.0; extra == 'cuda12'
Requires-Dist: toolz>=1.1.0; extra == 'cuda12'
Requires-Dist: tqdm>=4.67.3; extra == 'cuda12'
Requires-Dist: transformer-engine-cu12>=2.14.0; extra == 'cuda12'
Requires-Dist: transformer-engine-jax>=2.14.0; extra == 'cuda12'
Requires-Dist: transformer-engine>=2.14.0; extra == 'cuda12'
Requires-Dist: transformers>=5.6.2; extra == 'cuda12'
Requires-Dist: treescope>=0.1.10; extra == 'cuda12'
Requires-Dist: typeguard>=2.13.3; extra == 'cuda12'
Requires-Dist: typer>=0.25.0; extra == 'cuda12'
Requires-Dist: typing-extensions>=4.15.0; extra == 'cuda12'
Requires-Dist: typing-inspect>=0.9.0; extra == 'cuda12'
Requires-Dist: typing-inspection>=0.4.2; extra == 'cuda12'
Requires-Dist: tzdata>=2026.2; (sys_platform == 'emscripten' or sys_platform == 'win32') and extra == 'cuda12'
Requires-Dist: uritemplate>=4.2.0; extra == 'cuda12'
Requires-Dist: urllib3>=2.6.3; extra == 'cuda12'
Requires-Dist: uvicorn>=0.46.0; extra == 'cuda12'
Requires-Dist: uvloop>=0.22.1; extra == 'cuda12'
Requires-Dist: virtualenv>=20.36.1; extra == 'cuda12'
Requires-Dist: wadler-lindig>=0.1.7; extra == 'cuda12'
Requires-Dist: websockets>=16.0; extra == 'cuda12'
Requires-Dist: werkzeug>=3.1.8; extra == 'cuda12'
Requires-Dist: wheel>=0.46.3; extra == 'cuda12'
Requires-Dist: wrapt>=2.1.2; extra == 'cuda12'
Requires-Dist: xxhash>=3.7.0; extra == 'cuda12'
Requires-Dist: yarl>=1.23.0; extra == 'cuda12'
Requires-Dist: zipp>=3.23.0; extra == 'cuda12'
Requires-Dist: zstandard>=0.25.0; extra == 'cuda12'
Provides-Extra: docs
Requires-Dist: jax; extra == 'docs'
Requires-Dist: myst-nb; extra == 'docs'
Requires-Dist: myst-parser[linkify]; extra == 'docs'
Requires-Dist: sphinx-book-theme; extra == 'docs'
Requires-Dist: sphinx-copybutton; extra == 'docs'
Requires-Dist: sphinx-design; extra == 'docs'
Requires-Dist: sphinx<9; extra == 'docs'
Provides-Extra: runner
Requires-Dist: absl-py>=2.3.1; extra == 'runner'
Requires-Dist: annotated-types>=0.7.0; extra == 'runner'
Requires-Dist: antlr4-python3-runtime>=4.9.3; extra == 'runner'
Requires-Dist: anyio>=4.12.1; extra == 'runner'
Requires-Dist: argcomplete>=3.6.3; extra == 'runner'
Requires-Dist: astunparse>=1.6.3; extra == 'runner'
Requires-Dist: attrs>=25.4.0; extra == 'runner'
Requires-Dist: auditwheel>=6.5.0; extra == 'runner'
Requires-Dist: build>=1.3.0; extra == 'runner'
Requires-Dist: certifi>=2025.11.12; extra == 'runner'
Requires-Dist: cffi>=2.0.0; (platform_python_implementation != 'PyPy') and extra == 'runner'
Requires-Dist: charset-normalizer>=3.4.4; extra == 'runner'
Requires-Dist: cloud-accelerator-diagnostics>=0.1.1; extra == 'runner'
Requires-Dist: cloudpickle>=3.1.2; extra == 'runner'
Requires-Dist: colorama>=0.4.6; extra == 'runner'
Requires-Dist: contourpy>=1.3.3; extra == 'runner'
Requires-Dist: cryptography>=46.0.5; extra == 'runner'
Requires-Dist: cycler>=0.12.1; extra == 'runner'
Requires-Dist: distro>=1.9.0; extra == 'runner'
Requires-Dist: docker>=7.1.0; extra == 'runner'
Requires-Dist: docstring-parser>=0.17.0; extra == 'runner'
Requires-Dist: durationpy>=0.10; extra == 'runner'
Requires-Dist: etils>=1.13.0; extra == 'runner'
Requires-Dist: execnet>=2.1.2; extra == 'runner'
Requires-Dist: filelock>=3.20.0; extra == 'runner'
Requires-Dist: flatbuffers>=25.9.23; extra == 'runner'
Requires-Dist: fonttools>=4.60.1; extra == 'runner'
Requires-Dist: fsspec>=2025.10.0; extra == 'runner'
Requires-Dist: gast>=0.6.0; extra == 'runner'
Requires-Dist: google-api-core>=2.24.1; extra == 'runner'
Requires-Dist: google-auth>=2.49.1; extra == 'runner'
Requires-Dist: google-cloud-aiplatform>=1.142.0; extra == 'runner'
Requires-Dist: google-cloud-bigquery>=3.40.1; extra == 'runner'
Requires-Dist: google-cloud-common>=1.8.0; extra == 'runner'
Requires-Dist: google-cloud-core>=2.5.0; extra == 'runner'
Requires-Dist: google-cloud-filestore>=1.12.0; extra == 'runner'
Requires-Dist: google-cloud-resource-manager>=1.16.0; extra == 'runner'
Requires-Dist: google-cloud-storage>=3.4.1; extra == 'runner'
Requires-Dist: google-cloud>=0.34.0; extra == 'runner'
Requires-Dist: google-crc32c>=1.8.0; extra == 'runner'
Requires-Dist: google-genai>=1.68.0; extra == 'runner'
Requires-Dist: google-pasta>=0.2.0; extra == 'runner'
Requires-Dist: google-resumable-media>=2.8.0; extra == 'runner'
Requires-Dist: googleapis-common-protos>=1.73.0; extra == 'runner'
Requires-Dist: grpc-google-iam-v1>=0.14.3; extra == 'runner'
Requires-Dist: grpcio-status>=1.71.2; extra == 'runner'
Requires-Dist: grpcio>=1.76.0; extra == 'runner'
Requires-Dist: gviz-api>=1.10.0; extra == 'runner'
Requires-Dist: h11>=0.16.0; extra == 'runner'
Requires-Dist: h5py>=3.15.1; extra == 'runner'
Requires-Dist: httpcore>=1.0.9; extra == 'runner'
Requires-Dist: httpx>=0.28.1; extra == 'runner'
Requires-Dist: hypothesis>=6.142.1; extra == 'runner'
Requires-Dist: idna>=3.11; extra == 'runner'
Requires-Dist: importlib-resources>=6.5.2; extra == 'runner'
Requires-Dist: iniconfig>=2.3.0; extra == 'runner'
Requires-Dist: jaxlib>=0.8.1; extra == 'runner'
Requires-Dist: jinja2>=3.1.6; extra == 'runner'
Requires-Dist: keras>=3.12.0; extra == 'runner'
Requires-Dist: kiwisolver>=1.4.9; extra == 'runner'
Requires-Dist: kubernetes>=31.0.0; extra == 'runner'
Requires-Dist: libclang>=18.1.1; extra == 'runner'
Requires-Dist: libtpu>=0.0.30; (platform_machine == 'x86_64' and sys_platform == 'linux') and extra == 'runner'
Requires-Dist: markdown-it-py>=4.0.0; extra == 'runner'
Requires-Dist: markdown>=3.10; extra == 'runner'
Requires-Dist: markupsafe>=3.0.3; extra == 'runner'
Requires-Dist: matplotlib>=3.10.7; extra == 'runner'
Requires-Dist: mdurl>=0.1.2; extra == 'runner'
Requires-Dist: ml-dtypes>=0.5.4; extra == 'runner'
Requires-Dist: mpmath>=1.3.0; extra == 'runner'
Requires-Dist: namex>=0.1.0; extra == 'runner'
Requires-Dist: numpy-typing-compat>=20250818.2.0; extra == 'runner'
Requires-Dist: numpy>=2.0.2; extra == 'runner'
Requires-Dist: oauthlib>=3.3.1; extra == 'runner'
Requires-Dist: omegaconf>=2.3.0; extra == 'runner'
Requires-Dist: opt-einsum>=3.4.0; extra == 'runner'
Requires-Dist: optree>=0.18.0; extra == 'runner'
Requires-Dist: optype>=0.14.0; extra == 'runner'
Requires-Dist: packaging>=24.2; extra == 'runner'
Requires-Dist: pillow>=12.0.0; extra == 'runner'
Requires-Dist: pluggy>=1.6.0; extra == 'runner'
Requires-Dist: portpicker>=1.6.0; extra == 'runner'
Requires-Dist: proto-plus>=1.27.1; extra == 'runner'
Requires-Dist: protobuf>=5.29.6; extra == 'runner'
Requires-Dist: psutil>=7.1.3; extra == 'runner'
Requires-Dist: pyasn1-modules>=0.4.2; extra == 'runner'
Requires-Dist: pyasn1>=0.6.3; extra == 'runner'
Requires-Dist: pycparser>=3.0; (implementation_name != 'PyPy' and platform_python_implementation != 'PyPy') and extra == 'runner'
Requires-Dist: pydantic-core>=2.41.5; extra == 'runner'
Requires-Dist: pydantic>=2.12.5; extra == 'runner'
Requires-Dist: pyelftools>=0.32; extra == 'runner'
Requires-Dist: pygments>=2.19.2; extra == 'runner'
Requires-Dist: pyparsing>=3.2.5; extra == 'runner'
Requires-Dist: pyproject-hooks>=1.2.0; extra == 'runner'
Requires-Dist: pytest-xdist>=3.8.0; extra == 'runner'
Requires-Dist: pytest>=8.4.2; extra == 'runner'
Requires-Dist: python-dateutil>=2.9.0.post0; extra == 'runner'
Requires-Dist: pywin32>=311; (sys_platform == 'win32') and extra == 'runner'
Requires-Dist: pyyaml>=6.0.2; extra == 'runner'
Requires-Dist: requests-oauthlib>=2.0.0; extra == 'runner'
Requires-Dist: requests>=2.32.5; extra == 'runner'
Requires-Dist: rich>=14.2.0; extra == 'runner'
Requires-Dist: ruamel-yaml-clib>=0.2.15; (platform_python_implementation == 'CPython') and extra == 'runner'
Requires-Dist: ruamel-yaml>=0.18.10; extra == 'runner'
Requires-Dist: scipy-stubs>=1.16.3.0; extra == 'runner'
Requires-Dist: scipy>=1.16.3; extra == 'runner'
Requires-Dist: setuptools-scm>=9.2.2; extra == 'runner'
Requires-Dist: setuptools>=80.9.0; extra == 'runner'
Requires-Dist: six>=1.17.0; extra == 'runner'
Requires-Dist: sniffio>=1.3.1; extra == 'runner'
Requires-Dist: sortedcontainers>=2.4.0; extra == 'runner'
Requires-Dist: tabulate>=0.9.0; extra == 'runner'
Requires-Dist: tenacity>=9.1.4; extra == 'runner'
Requires-Dist: tensorboard-data-server>=0.7.2; extra == 'runner'
Requires-Dist: tensorboard-plugin-profile>=2.13.0; extra == 'runner'
Requires-Dist: tensorstore>=0.1.79; extra == 'runner'
Requires-Dist: termcolor>=3.2.0; extra == 'runner'
Requires-Dist: typing-extensions>=4.15.0; extra == 'runner'
Requires-Dist: typing-inspection>=0.4.2; extra == 'runner'
Requires-Dist: urllib3>=2.5.0; extra == 'runner'
Requires-Dist: websocket-client>=1.9.0; extra == 'runner'
Requires-Dist: websockets>=16.0; extra == 'runner'
Requires-Dist: werkzeug>=3.1.3; extra == 'runner'
Requires-Dist: wheel>=0.46.1; extra == 'runner'
Requires-Dist: xpk>=1.8.0; extra == 'runner'
Requires-Dist: zipp>=3.23.0; extra == 'runner'
Requires-Dist: zstandard>=0.25.0; extra == 'runner'
Provides-Extra: tpu
Requires-Dist: absl-py>=2.4.0; extra == 'tpu'
Requires-Dist: aiofiles>=25.1.0; extra == 'tpu'
Requires-Dist: aiohappyeyeballs>=2.6.1; extra == 'tpu'
Requires-Dist: aiohttp>=3.13.5; extra == 'tpu'
Requires-Dist: aiosignal>=1.4.0; extra == 'tpu'
Requires-Dist: annotated-doc>=0.0.4; extra == 'tpu'
Requires-Dist: annotated-types>=0.7.0; extra == 'tpu'
Requires-Dist: antlr4-python3-runtime>=4.9.3; extra == 'tpu'
Requires-Dist: anyio>=4.13.0; extra == 'tpu'
Requires-Dist: aqtp>=0.9.0; extra == 'tpu'
Requires-Dist: array-record>=0.8.3; extra == 'tpu'
Requires-Dist: astroid>=4.0.4; extra == 'tpu'
Requires-Dist: astunparse>=1.6.3; extra == 'tpu'
Requires-Dist: attrs>=25.4.0; extra == 'tpu'
Requires-Dist: auditwheel>=6.6.0; extra == 'tpu'
Requires-Dist: black>=25.12.0; extra == 'tpu'
Requires-Dist: build>=1.4.0; extra == 'tpu'
Requires-Dist: certifi>=2026.2.25; extra == 'tpu'
Requires-Dist: cffi>=2.0.0; (platform_python_implementation != 'PyPy') and extra == 'tpu'
Requires-Dist: cfgv>=3.5.0; extra == 'tpu'
Requires-Dist: charset-normalizer>=3.4.6; extra == 'tpu'
Requires-Dist: chex>=0.1.91; extra == 'tpu'
Requires-Dist: click>=8.3.3; extra == 'tpu'
Requires-Dist: cloud-accelerator-diagnostics>=0.1.1; extra == 'tpu'
Requires-Dist: cloud-tpu-diagnostics>=0.1.5; extra == 'tpu'
Requires-Dist: cloudpickle>=3.1.2; extra == 'tpu'
Requires-Dist: clu>=0.0.12; extra == 'tpu'
Requires-Dist: colorama>=0.4.6; extra == 'tpu'
Requires-Dist: contourpy>=1.3.3; extra == 'tpu'
Requires-Dist: cryptography>=48.0.0; extra == 'tpu'
Requires-Dist: cycler>=0.12.1; extra == 'tpu'
Requires-Dist: dataclasses-json>=0.6.7; extra == 'tpu'
Requires-Dist: datasets>=4.8.5; extra == 'tpu'
Requires-Dist: decorator>=5.2.1; extra == 'tpu'
Requires-Dist: dill>=0.4.1; extra == 'tpu'
Requires-Dist: distlib>=0.4.0; extra == 'tpu'
Requires-Dist: distro>=1.9.0; extra == 'tpu'
Requires-Dist: dm-tree>=0.1.10; extra == 'tpu'
Requires-Dist: docstring-parser>=0.18.0; extra == 'tpu'
Requires-Dist: drjax>=0.1.4; extra == 'tpu'
Requires-Dist: editdistance>=0.8.1; extra == 'tpu'
Requires-Dist: einops>=0.8.2; extra == 'tpu'
Requires-Dist: einshape>=1.0; extra == 'tpu'
Requires-Dist: etils>=1.14.0; extra == 'tpu'
Requires-Dist: execnet>=2.1.2; extra == 'tpu'
Requires-Dist: fastapi>=0.136.1; extra == 'tpu'
Requires-Dist: filelock>=3.20.3; extra == 'tpu'
Requires-Dist: flatbuffers>=25.12.19; extra == 'tpu'
Requires-Dist: flax>=0.12.6; extra == 'tpu'
Requires-Dist: fonttools>=4.62.1; extra == 'tpu'
Requires-Dist: frozenlist>=1.8.0; extra == 'tpu'
Requires-Dist: fsspec>=2026.2.0; extra == 'tpu'
Requires-Dist: gast>=0.7.0; extra == 'tpu'
Requires-Dist: gcsfs>=2026.2.0; extra == 'tpu'
Requires-Dist: google-api-core>=2.30.3; extra == 'tpu'
Requires-Dist: google-api-python-client>=2.195.0; extra == 'tpu'
Requires-Dist: google-auth-httplib2>=0.3.1; extra == 'tpu'
Requires-Dist: google-auth-oauthlib>=1.3.1; extra == 'tpu'
Requires-Dist: google-auth>=2.50.0; extra == 'tpu'
Requires-Dist: google-cloud-aiplatform>=1.149.0; extra == 'tpu'
Requires-Dist: google-cloud-appengine-logging>=1.9.0; extra == 'tpu'
Requires-Dist: google-cloud-audit-log>=0.5.0; extra == 'tpu'
Requires-Dist: google-cloud-bigquery>=3.41.0; extra == 'tpu'
Requires-Dist: google-cloud-core>=2.5.1; extra == 'tpu'
Requires-Dist: google-cloud-logging>=3.15.0; extra == 'tpu'
Requires-Dist: google-cloud-mldiagnostics>=1.0.2; extra == 'tpu'
Requires-Dist: google-cloud-monitoring>=2.30.0; extra == 'tpu'
Requires-Dist: google-cloud-resource-manager>=1.17.0; extra == 'tpu'
Requires-Dist: google-cloud-storage-control>=1.11.0; extra == 'tpu'
Requires-Dist: google-cloud-storage>=3.10.1; extra == 'tpu'
Requires-Dist: google-crc32c>=1.8.0; extra == 'tpu'
Requires-Dist: google-genai>=1.75.0; extra == 'tpu'
Requires-Dist: google-pasta>=0.2.0; extra == 'tpu'
Requires-Dist: google-resumable-media>=2.8.2; extra == 'tpu'
Requires-Dist: googleapis-common-protos>=1.74.0; extra == 'tpu'
Requires-Dist: grain>=0.2.16; extra == 'tpu'
Requires-Dist: grpc-google-iam-v1>=0.14.4; extra == 'tpu'
Requires-Dist: grpcio-status>=1.78.0; extra == 'tpu'
Requires-Dist: grpcio-tools>=1.78.0; extra == 'tpu'
Requires-Dist: grpcio>=1.78.0; extra == 'tpu'
Requires-Dist: gviz-api>=1.10.0; extra == 'tpu'
Requires-Dist: h11>=0.16.0; extra == 'tpu'
Requires-Dist: h5py>=3.14.0; extra == 'tpu'
Requires-Dist: hf-xet>=1.4.3; (platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64') and extra == 'tpu'
Requires-Dist: httpcore>=1.0.9; extra == 'tpu'
Requires-Dist: httplib2>=0.31.2; extra == 'tpu'
Requires-Dist: httpx>=0.28.1; extra == 'tpu'
Requires-Dist: huggingface-hub>=1.13.0; extra == 'tpu'
Requires-Dist: humanize>=4.15.0; extra == 'tpu'
Requires-Dist: hypothesis>=6.142.1; extra == 'tpu'
Requires-Dist: identify>=2.6.19; extra == 'tpu'
Requires-Dist: idna>=3.11; extra == 'tpu'
Requires-Dist: immutabledict>=4.3.1; extra == 'tpu'
Requires-Dist: importlab>=0.8.1; extra == 'tpu'
Requires-Dist: importlib-metadata>=8.7.1; extra == 'tpu'
Requires-Dist: iniconfig>=2.3.0; extra == 'tpu'
Requires-Dist: isort>=8.0.1; extra == 'tpu'
Requires-Dist: jax>=0.9.2; extra == 'tpu'
Requires-Dist: jaxlib>=0.9.2; extra == 'tpu'
Requires-Dist: jaxtyping>=0.3.9; extra == 'tpu'
Requires-Dist: jinja2>=3.1.6; extra == 'tpu'
Requires-Dist: jsonlines>=4.0.0; extra == 'tpu'
Requires-Dist: keras>=3.13.2; extra == 'tpu'
Requires-Dist: kiwisolver>=1.5.0; extra == 'tpu'
Requires-Dist: latex2sympy2-extended>=1.11.0; extra == 'tpu'
Requires-Dist: libclang>=18.1.1; extra == 'tpu'
Requires-Dist: libcst>=1.8.6; extra == 'tpu'
Requires-Dist: libtpu>=0.0.38; extra == 'tpu'
Requires-Dist: markdown-it-py>=4.0.0; extra == 'tpu'
Requires-Dist: markdown>=3.10.2; extra == 'tpu'
Requires-Dist: markupsafe>=3.0.3; extra == 'tpu'
Requires-Dist: marshmallow>=3.26.2; extra == 'tpu'
Requires-Dist: math-verify>=0.9.0; extra == 'tpu'
Requires-Dist: matplotlib>=3.10.8; extra == 'tpu'
Requires-Dist: mccabe>=0.7.0; extra == 'tpu'
Requires-Dist: mdurl>=0.1.2; extra == 'tpu'
Requires-Dist: ml-collections>=1.1.0; extra == 'tpu'
Requires-Dist: ml-dtypes>=0.5.4; extra == 'tpu'
Requires-Dist: ml-goodput-measurement>=0.0.16; extra == 'tpu'
Requires-Dist: mpmath>=1.3.0; extra == 'tpu'
Requires-Dist: msgpack>=1.1.2; extra == 'tpu'
Requires-Dist: msgspec>=0.21.1; extra == 'tpu'
Requires-Dist: multidict>=6.7.1; extra == 'tpu'
Requires-Dist: multiprocess>=0.70.19; extra == 'tpu'
Requires-Dist: mypy-extensions>=1.1.0; extra == 'tpu'
Requires-Dist: namex>=0.1.0; extra == 'tpu'
Requires-Dist: nest-asyncio>=1.6.0; (sys_platform == 'win32') and extra == 'tpu'
Requires-Dist: networkx>=3.6.1; extra == 'tpu'
Requires-Dist: ninja>=1.13.0; extra == 'tpu'
Requires-Dist: nodeenv>=1.10.0; extra == 'tpu'
Requires-Dist: numpy-typing-compat>=20251206.2.0; extra == 'tpu'
Requires-Dist: numpy>=2.0.2; extra == 'tpu'
Requires-Dist: nvidia-cuda-cccl>=13.2.27; extra == 'tpu'
Requires-Dist: oauthlib>=3.3.1; extra == 'tpu'
Requires-Dist: omegaconf>=2.3.0; extra == 'tpu'
Requires-Dist: opentelemetry-api>=1.41.1; extra == 'tpu'
Requires-Dist: opt-einsum>=3.4.0; extra == 'tpu'
Requires-Dist: optax>=0.2.8; extra == 'tpu'
Requires-Dist: optree>=0.19.0; extra == 'tpu'
Requires-Dist: optype>=0.17.0; extra == 'tpu'
Requires-Dist: orbax-checkpoint>=0.11.37; extra == 'tpu'
Requires-Dist: orbax-export>=0.0.8; extra == 'tpu'
Requires-Dist: packaging>=26.0; extra == 'tpu'
Requires-Dist: pandas>=3.0.2; extra == 'tpu'
Requires-Dist: parameterized>=0.9.0; extra == 'tpu'
Requires-Dist: pathspec>=1.1.1; extra == 'tpu'
Requires-Dist: pathwaysutils>=0.1.8; extra == 'tpu'
Requires-Dist: pillow>=12.1.1; extra == 'tpu'
Requires-Dist: platformdirs>=4.9.6; extra == 'tpu'
Requires-Dist: pluggy>=1.6.0; extra == 'tpu'
Requires-Dist: portpicker>=1.6.0; extra == 'tpu'
Requires-Dist: pre-commit>=4.6.0; extra == 'tpu'
Requires-Dist: promise>=2.3; extra == 'tpu'
Requires-Dist: propcache>=0.4.1; extra == 'tpu'
Requires-Dist: proto-plus>=1.27.2; extra == 'tpu'
Requires-Dist: protobuf>=6.33.6; extra == 'tpu'
Requires-Dist: psutil>=7.2.2; extra == 'tpu'
Requires-Dist: pyarrow>=24.0.0; extra == 'tpu'
Requires-Dist: pyasn1-modules>=0.4.2; extra == 'tpu'
Requires-Dist: pyasn1>=0.6.3; extra == 'tpu'
Requires-Dist: pycnite>=2024.7.31; extra == 'tpu'
Requires-Dist: pycparser>=3.0; (implementation_name != 'PyPy' and platform_python_implementation != 'PyPy') and extra == 'tpu'
Requires-Dist: pydantic-core>=2.46.3; extra == 'tpu'
Requires-Dist: pydantic>=2.13.3; extra == 'tpu'
Requires-Dist: pydot>=4.0.1; extra == 'tpu'
Requires-Dist: pyelftools>=0.32; extra == 'tpu'
Requires-Dist: pyglove>=0.4.5; extra == 'tpu'
Requires-Dist: pygments>=2.19.2; extra == 'tpu'
Requires-Dist: pyink>=25.12.0; extra == 'tpu'
Requires-Dist: pylint>=4.0.5; extra == 'tpu'
Requires-Dist: pyparsing>=3.3.2; extra == 'tpu'
Requires-Dist: pyproject-hooks>=1.2.0; extra == 'tpu'
Requires-Dist: pytest-xdist>=3.8.0; extra == 'tpu'
Requires-Dist: pytest>=8.4.2; extra == 'tpu'
Requires-Dist: python-dateutil>=2.9.0.post0; extra == 'tpu'
Requires-Dist: pytokens>=0.4.1; extra == 'tpu'
Requires-Dist: pytype>=2024.10.11; extra == 'tpu'
Requires-Dist: pyyaml>=6.0.3; extra == 'tpu'
Requires-Dist: qwix>=0.1.6; extra == 'tpu'
Requires-Dist: regex>=2026.4.4; extra == 'tpu'
Requires-Dist: requests-oauthlib>=2.0.0; extra == 'tpu'
Requires-Dist: requests>=2.32.5; extra == 'tpu'
Requires-Dist: rich>=14.3.3; extra == 'tpu'
Requires-Dist: safetensors>=0.7.0; extra == 'tpu'
Requires-Dist: scipy-stubs>=1.17.1.2; extra == 'tpu'
Requires-Dist: scipy>=1.17.1; extra == 'tpu'
Requires-Dist: sentencepiece>=0.2.1; extra == 'tpu'
Requires-Dist: seqio>=0.0.20; extra == 'tpu'
Requires-Dist: setuptools>=82.0.1; extra == 'tpu'
Requires-Dist: shellingham>=1.5.4; extra == 'tpu'
Requires-Dist: simple-parsing>=0.1.8; extra == 'tpu'
Requires-Dist: simplejson>=4.1.1; extra == 'tpu'
Requires-Dist: six>=1.17.0; extra == 'tpu'
Requires-Dist: sniffio>=1.3.1; extra == 'tpu'
Requires-Dist: sortedcontainers>=2.4.0; extra == 'tpu'
Requires-Dist: starlette>=1.0.0; extra == 'tpu'
Requires-Dist: sympy>=1.14.0; extra == 'tpu'
Requires-Dist: tabulate>=0.10.0; extra == 'tpu'
Requires-Dist: tenacity>=9.1.4; extra == 'tpu'
Requires-Dist: tensorboard-data-server>=0.7.2; extra == 'tpu'
Requires-Dist: tensorboard-plugin-profile>=2.13.0; extra == 'tpu'
Requires-Dist: tensorboard>=2.20.0; extra == 'tpu'
Requires-Dist: tensorboardx>=2.6.5; extra == 'tpu'
Requires-Dist: tensorflow-datasets>=4.9.9; extra == 'tpu'
Requires-Dist: tensorflow-metadata>=1.17.3; extra == 'tpu'
Requires-Dist: tensorflow-text>=2.20.1; extra == 'tpu'
Requires-Dist: tensorflow>=2.20.0; extra == 'tpu'
Requires-Dist: tensorstore>=0.1.82; extra == 'tpu'
Requires-Dist: termcolor>=3.3.0; extra == 'tpu'
Requires-Dist: tiktoken>=0.12.0; extra == 'tpu'
Requires-Dist: tokamax>=0.0.12; extra == 'tpu'
Requires-Dist: tokenizers>=0.22.2; extra == 'tpu'
Requires-Dist: toml>=0.10.2; extra == 'tpu'
Requires-Dist: tomlkit>=0.14.0; extra == 'tpu'
Requires-Dist: toolz>=1.1.0; extra == 'tpu'
Requires-Dist: tqdm>=4.67.3; extra == 'tpu'
Requires-Dist: transformers>=5.8.0; extra == 'tpu'
Requires-Dist: treescope>=0.1.10; extra == 'tpu'
Requires-Dist: typeguard>=2.13.3; extra == 'tpu'
Requires-Dist: typer>=0.25.1; extra == 'tpu'
Requires-Dist: typing-extensions>=4.15.0; extra == 'tpu'
Requires-Dist: typing-inspect>=0.9.0; extra == 'tpu'
Requires-Dist: typing-inspection>=0.4.2; extra == 'tpu'
Requires-Dist: tzdata>=2026.2; (sys_platform == 'emscripten' or sys_platform == 'win32') and extra == 'tpu'
Requires-Dist: uritemplate>=4.2.0; extra == 'tpu'
Requires-Dist: urllib3>=2.6.3; extra == 'tpu'
Requires-Dist: uvicorn>=0.46.0; extra == 'tpu'
Requires-Dist: uvloop>=0.22.1; extra == 'tpu'
Requires-Dist: virtualenv>=20.36.1; extra == 'tpu'
Requires-Dist: wadler-lindig>=0.1.7; extra == 'tpu'
Requires-Dist: websockets>=16.0; extra == 'tpu'
Requires-Dist: werkzeug>=3.1.8; extra == 'tpu'
Requires-Dist: wheel>=0.46.3; extra == 'tpu'
Requires-Dist: wrapt>=2.1.2; extra == 'tpu'
Requires-Dist: xxhash>=3.7.0; extra == 'tpu'
Requires-Dist: yarl>=1.23.0; extra == 'tpu'
Requires-Dist: zipp>=3.23.0; extra == 'tpu'
Requires-Dist: zstandard>=0.25.0; extra == 'tpu'
Provides-Extra: tpu-post-train
Requires-Dist: absl-py>=2.4.0; extra == 'tpu-post-train'
Requires-Dist: aiofiles>=25.1.0; extra == 'tpu-post-train'
Requires-Dist: aiohappyeyeballs>=2.6.1; extra == 'tpu-post-train'
Requires-Dist: aiohttp>=3.13.5; extra == 'tpu-post-train'
Requires-Dist: aiosignal>=1.4.0; extra == 'tpu-post-train'
Requires-Dist: annotated-doc>=0.0.4; extra == 'tpu-post-train'
Requires-Dist: annotated-types>=0.7.0; extra == 'tpu-post-train'
Requires-Dist: anthropic>=0.100.0; extra == 'tpu-post-train'
Requires-Dist: antlr4-python3-runtime>=4.9.3; extra == 'tpu-post-train'
Requires-Dist: anyio>=4.13.0; extra == 'tpu-post-train'
Requires-Dist: apache-tvm-ffi>=0.1.11; extra == 'tpu-post-train'
Requires-Dist: appnope>=0.1.4; (sys_platform == 'darwin') and extra == 'tpu-post-train'
Requires-Dist: aqtp>=0.9.0; extra == 'tpu-post-train'
Requires-Dist: array-record>=0.8.3; extra == 'tpu-post-train'
Requires-Dist: astor>=0.8.1; extra == 'tpu-post-train'
Requires-Dist: astroid>=4.0.4; extra == 'tpu-post-train'
Requires-Dist: asttokens>=3.0.1; extra == 'tpu-post-train'
Requires-Dist: astunparse>=1.6.3; extra == 'tpu-post-train'
Requires-Dist: attrs>=25.4.0; extra == 'tpu-post-train'
Requires-Dist: auditwheel>=6.6.0; extra == 'tpu-post-train'
Requires-Dist: black>=25.12.0; extra == 'tpu-post-train'
Requires-Dist: boto3>=1.43.5; extra == 'tpu-post-train'
Requires-Dist: botocore>=1.43.5; extra == 'tpu-post-train'
Requires-Dist: build>=1.4.0; extra == 'tpu-post-train'
Requires-Dist: cachetools>=7.1.1; extra == 'tpu-post-train'
Requires-Dist: cbor2>=6.0.1; extra == 'tpu-post-train'
Requires-Dist: certifi>=2026.2.25; extra == 'tpu-post-train'
Requires-Dist: cffi>=2.0.0; (implementation_name == 'pypy' or platform_python_implementation != 'PyPy') and extra == 'tpu-post-train'
Requires-Dist: cfgv>=3.5.0; extra == 'tpu-post-train'
Requires-Dist: charset-normalizer>=3.4.6; extra == 'tpu-post-train'
Requires-Dist: cheroot>=11.1.2; extra == 'tpu-post-train'
Requires-Dist: chex>=0.1.91; extra == 'tpu-post-train'
Requires-Dist: click>=8.3.3; extra == 'tpu-post-train'
Requires-Dist: cloud-accelerator-diagnostics>=0.1.1; extra == 'tpu-post-train'
Requires-Dist: cloud-tpu-diagnostics>=0.1.5; extra == 'tpu-post-train'
Requires-Dist: cloudpickle>=3.1.2; extra == 'tpu-post-train'
Requires-Dist: clu>=0.0.12; extra == 'tpu-post-train'
Requires-Dist: colorama>=0.4.6; extra == 'tpu-post-train'
Requires-Dist: comm>=0.2.3; extra == 'tpu-post-train'
Requires-Dist: compressed-tensors>=0.15.0.1; extra == 'tpu-post-train'
Requires-Dist: contourpy>=1.3.3; extra == 'tpu-post-train'
Requires-Dist: cryptography>=48.0.0; extra == 'tpu-post-train'
Requires-Dist: cuda-bindings>=13.2.0; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: cuda-pathfinder>=1.5.4; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: cuda-toolkit>=13.0.2; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: cycler>=0.12.1; extra == 'tpu-post-train'
Requires-Dist: dataclasses-json>=0.6.7; extra == 'tpu-post-train'
Requires-Dist: datasets>=4.8.5; extra == 'tpu-post-train'
Requires-Dist: debugpy>=1.8.20; extra == 'tpu-post-train'
Requires-Dist: decorator>=5.2.1; extra == 'tpu-post-train'
Requires-Dist: dill>=0.4.1; extra == 'tpu-post-train'
Requires-Dist: distlib>=0.4.0; extra == 'tpu-post-train'
Requires-Dist: distro>=1.9.0; extra == 'tpu-post-train'
Requires-Dist: dm-tree>=0.1.10; extra == 'tpu-post-train'
Requires-Dist: docstring-parser>=0.18.0; extra == 'tpu-post-train'
Requires-Dist: drjax>=0.1.4; extra == 'tpu-post-train'
Requires-Dist: editdistance>=0.8.1; extra == 'tpu-post-train'
Requires-Dist: einops>=0.8.2; extra == 'tpu-post-train'
Requires-Dist: einshape>=1.0; extra == 'tpu-post-train'
Requires-Dist: entrypoints>=0.4; extra == 'tpu-post-train'
Requires-Dist: etils>=1.14.0; extra == 'tpu-post-train'
Requires-Dist: execnet>=2.1.2; extra == 'tpu-post-train'
Requires-Dist: executing>=2.2.1; extra == 'tpu-post-train'
Requires-Dist: fastapi>=0.136.1; extra == 'tpu-post-train'
Requires-Dist: fastjsonschema>=2.21.2; extra == 'tpu-post-train'
Requires-Dist: filelock>=3.20.3; extra == 'tpu-post-train'
Requires-Dist: flatbuffers>=25.12.19; extra == 'tpu-post-train'
Requires-Dist: flax>=0.12.4; extra == 'tpu-post-train'
Requires-Dist: fonttools>=4.62.1; extra == 'tpu-post-train'
Requires-Dist: frozenlist>=1.8.0; extra == 'tpu-post-train'
Requires-Dist: fsspec>=2026.2.0; extra == 'tpu-post-train'
Requires-Dist: gast>=0.7.0; extra == 'tpu-post-train'
Requires-Dist: gcsfs>=2026.2.0; extra == 'tpu-post-train'
Requires-Dist: gepa>=0.1.1; extra == 'tpu-post-train'
Requires-Dist: gguf>=0.19.0; extra == 'tpu-post-train'
Requires-Dist: google-api-core>=2.30.3; extra == 'tpu-post-train'
Requires-Dist: google-api-python-client>=2.195.0; extra == 'tpu-post-train'
Requires-Dist: google-auth-httplib2>=0.3.1; extra == 'tpu-post-train'
Requires-Dist: google-auth-oauthlib>=1.3.1; extra == 'tpu-post-train'
Requires-Dist: google-auth>=2.50.0; extra == 'tpu-post-train'
Requires-Dist: google-cloud-aiplatform>=1.150.0; extra == 'tpu-post-train'
Requires-Dist: google-cloud-appengine-logging>=1.9.0; extra == 'tpu-post-train'
Requires-Dist: google-cloud-audit-log>=0.5.0; extra == 'tpu-post-train'
Requires-Dist: google-cloud-bigquery>=3.41.0; extra == 'tpu-post-train'
Requires-Dist: google-cloud-core>=2.5.1; extra == 'tpu-post-train'
Requires-Dist: google-cloud-logging>=3.15.0; extra == 'tpu-post-train'
Requires-Dist: google-cloud-mldiagnostics>=1.0.2; extra == 'tpu-post-train'
Requires-Dist: google-cloud-monitoring>=2.30.0; extra == 'tpu-post-train'
Requires-Dist: google-cloud-resource-manager>=1.17.0; extra == 'tpu-post-train'
Requires-Dist: google-cloud-storage-control>=1.11.0; extra == 'tpu-post-train'
Requires-Dist: google-cloud-storage>=3.10.1; extra == 'tpu-post-train'
Requires-Dist: google-crc32c>=1.8.0; extra == 'tpu-post-train'
Requires-Dist: google-genai>=1.75.0; extra == 'tpu-post-train'
Requires-Dist: google-metrax>=0.2.3; extra == 'tpu-post-train'
Requires-Dist: google-pasta>=0.2.0; extra == 'tpu-post-train'
Requires-Dist: google-resumable-media>=2.8.2; extra == 'tpu-post-train'
Requires-Dist: google-tunix>=0.1.3; extra == 'tpu-post-train'
Requires-Dist: googleapis-common-protos>=1.74.0; extra == 'tpu-post-train'
Requires-Dist: grain>=0.2.16; extra == 'tpu-post-train'
Requires-Dist: grpc-google-iam-v1>=0.14.4; extra == 'tpu-post-train'
Requires-Dist: grpcio-status>=1.78.0; extra == 'tpu-post-train'
Requires-Dist: grpcio>=1.78.0; extra == 'tpu-post-train'
Requires-Dist: gspread>=6.2.1; extra == 'tpu-post-train'
Requires-Dist: gviz-api>=1.10.0; extra == 'tpu-post-train'
Requires-Dist: h11>=0.16.0; extra == 'tpu-post-train'
Requires-Dist: h5py>=3.14.0; extra == 'tpu-post-train'
Requires-Dist: hf-transfer>=0.1.9; extra == 'tpu-post-train'
Requires-Dist: hf-xet>=1.5.0; (platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64') and extra == 'tpu-post-train'
Requires-Dist: httpcore>=1.0.9; extra == 'tpu-post-train'
Requires-Dist: httplib2>=0.31.2; extra == 'tpu-post-train'
Requires-Dist: httpx>=0.28.1; extra == 'tpu-post-train'
Requires-Dist: huggingface-hub>=1.14.0; extra == 'tpu-post-train'
Requires-Dist: humanize>=4.15.0; extra == 'tpu-post-train'
Requires-Dist: hypothesis>=6.142.1; extra == 'tpu-post-train'
Requires-Dist: identify>=2.6.19; extra == 'tpu-post-train'
Requires-Dist: idna>=3.11; extra == 'tpu-post-train'
Requires-Dist: ijson>=3.5.0; extra == 'tpu-post-train'
Requires-Dist: immutabledict>=4.3.1; extra == 'tpu-post-train'
Requires-Dist: importlab>=0.8.1; extra == 'tpu-post-train'
Requires-Dist: importlib-metadata>=8.7.1; extra == 'tpu-post-train'
Requires-Dist: iniconfig>=2.3.0; extra == 'tpu-post-train'
Requires-Dist: ipykernel>=7.2.0; extra == 'tpu-post-train'
Requires-Dist: ipython-pygments-lexers>=1.1.1; extra == 'tpu-post-train'
Requires-Dist: ipython>=9.13.0; extra == 'tpu-post-train'
Requires-Dist: ipywidgets>=8.1.8; extra == 'tpu-post-train'
Requires-Dist: isort>=8.0.1; extra == 'tpu-post-train'
Requires-Dist: jaraco-functools>=4.4.0; extra == 'tpu-post-train'
Requires-Dist: jax>=0.9.2; extra == 'tpu-post-train'
Requires-Dist: jaxlib>=0.9.2; extra == 'tpu-post-train'
Requires-Dist: jaxtyping>=0.3.9; extra == 'tpu-post-train'
Requires-Dist: jedi>=0.20.0; extra == 'tpu-post-train'
Requires-Dist: jinja2>=3.1.6; extra == 'tpu-post-train'
Requires-Dist: jiter>=0.14.0; extra == 'tpu-post-train'
Requires-Dist: jmespath>=1.1.0; extra == 'tpu-post-train'
Requires-Dist: jsonlines>=4.0.0; extra == 'tpu-post-train'
Requires-Dist: jsonschema-specifications>=2025.9.1; extra == 'tpu-post-train'
Requires-Dist: jsonschema>=4.26.0; extra == 'tpu-post-train'
Requires-Dist: jupyter-client>=8.8.0; extra == 'tpu-post-train'
Requires-Dist: jupyter-core>=5.9.1; extra == 'tpu-post-train'
Requires-Dist: jupyterlab-widgets>=3.0.16; extra == 'tpu-post-train'
Requires-Dist: kagglehub>=1.0.1; extra == 'tpu-post-train'
Requires-Dist: kagglesdk>=0.1.23; extra == 'tpu-post-train'
Requires-Dist: keras>=3.13.2; extra == 'tpu-post-train'
Requires-Dist: kiwisolver>=1.5.0; extra == 'tpu-post-train'
Requires-Dist: latex2sympy2-extended>=1.11.0; extra == 'tpu-post-train'
Requires-Dist: libclang>=18.1.1; extra == 'tpu-post-train'
Requires-Dist: libcst>=1.8.6; extra == 'tpu-post-train'
Requires-Dist: libtpu>=0.0.39; extra == 'tpu-post-train'
Requires-Dist: llguidance>=1.7.5; extra == 'tpu-post-train'
Requires-Dist: llvmlite>=0.47.0; extra == 'tpu-post-train'
Requires-Dist: loguru>=0.7.3; extra == 'tpu-post-train'
Requires-Dist: lxml>=6.1.0; extra == 'tpu-post-train'
Requires-Dist: markdown-it-py>=4.0.0; extra == 'tpu-post-train'
Requires-Dist: markdown>=3.10.2; extra == 'tpu-post-train'
Requires-Dist: markupsafe>=3.0.3; extra == 'tpu-post-train'
Requires-Dist: marshmallow>=3.26.2; extra == 'tpu-post-train'
Requires-Dist: math-verify>=0.9.0; extra == 'tpu-post-train'
Requires-Dist: matplotlib-inline>=0.2.1; extra == 'tpu-post-train'
Requires-Dist: matplotlib>=3.10.8; extra == 'tpu-post-train'
Requires-Dist: mccabe>=0.7.0; extra == 'tpu-post-train'
Requires-Dist: mdurl>=0.1.2; extra == 'tpu-post-train'
Requires-Dist: mistral-common>=1.11.2; extra == 'tpu-post-train'
Requires-Dist: ml-collections>=1.1.0; extra == 'tpu-post-train'
Requires-Dist: ml-dtypes>=0.5.4; extra == 'tpu-post-train'
Requires-Dist: ml-goodput-measurement>=0.0.16; extra == 'tpu-post-train'
Requires-Dist: model-hosting-container-standards>=0.1.15; extra == 'tpu-post-train'
Requires-Dist: more-itertools>=11.0.2; extra == 'tpu-post-train'
Requires-Dist: mpmath>=1.3.0; extra == 'tpu-post-train'
Requires-Dist: msgpack>=1.1.2; extra == 'tpu-post-train'
Requires-Dist: msgspec>=0.21.1; extra == 'tpu-post-train'
Requires-Dist: multidict>=6.7.1; extra == 'tpu-post-train'
Requires-Dist: multiprocess>=0.70.19; extra == 'tpu-post-train'
Requires-Dist: mypy-extensions>=1.1.0; extra == 'tpu-post-train'
Requires-Dist: namex>=0.1.0; extra == 'tpu-post-train'
Requires-Dist: nbclient>=0.10.4; extra == 'tpu-post-train'
Requires-Dist: nbformat>=5.10.4; extra == 'tpu-post-train'
Requires-Dist: nest-asyncio>=1.6.0; extra == 'tpu-post-train'
Requires-Dist: networkx>=3.6.1; extra == 'tpu-post-train'
Requires-Dist: ninja>=1.13.0; extra == 'tpu-post-train'
Requires-Dist: nodeenv>=1.10.0; extra == 'tpu-post-train'
Requires-Dist: numba>=0.65.1; extra == 'tpu-post-train'
Requires-Dist: numpy-typing-compat>=20251206.2.1; extra == 'tpu-post-train'
Requires-Dist: numpy>=2.1.3; extra == 'tpu-post-train'
Requires-Dist: nvidia-cublas>=13.1.0.3; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: nvidia-cuda-cccl>=13.2.27; extra == 'tpu-post-train'
Requires-Dist: nvidia-cuda-cupti>=13.0.85; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: nvidia-cuda-nvrtc>=13.0.88; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: nvidia-cuda-runtime>=13.0.96; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: nvidia-cudnn-cu13>=9.19.0.56; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: nvidia-cufft>=12.0.0.61; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: nvidia-cufile>=1.15.1.6; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: nvidia-curand>=10.4.0.35; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: nvidia-cusolver>=12.0.4.66; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: nvidia-cusparse>=12.6.3.3; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: nvidia-cusparselt-cu13>=0.8.0; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: nvidia-nccl-cu13>=2.28.9; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: nvidia-nvjitlink>=13.0.88; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: nvidia-nvshmem-cu13>=3.4.5; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: nvidia-nvtx>=13.0.85; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: oauthlib>=3.3.1; extra == 'tpu-post-train'
Requires-Dist: omegaconf>=2.3.0; extra == 'tpu-post-train'
Requires-Dist: openai-harmony>=0.0.8; extra == 'tpu-post-train'
Requires-Dist: openai>=2.35.1; extra == 'tpu-post-train'
Requires-Dist: opentelemetry-api>=1.41.1; extra == 'tpu-post-train'
Requires-Dist: opt-einsum>=3.4.0; extra == 'tpu-post-train'
Requires-Dist: optax>=0.2.6; extra == 'tpu-post-train'
Requires-Dist: optree>=0.19.0; extra == 'tpu-post-train'
Requires-Dist: optype>=0.17.0; extra == 'tpu-post-train'
Requires-Dist: orbax-checkpoint>=0.11.39; extra == 'tpu-post-train'
Requires-Dist: orbax-export>=0.0.8; extra == 'tpu-post-train'
Requires-Dist: packaging>=26.0; extra == 'tpu-post-train'
Requires-Dist: pandas>=3.0.2; extra == 'tpu-post-train'
Requires-Dist: papermill>=2.7.0; extra == 'tpu-post-train'
Requires-Dist: parameterized>=0.9.0; extra == 'tpu-post-train'
Requires-Dist: parso>=0.8.7; extra == 'tpu-post-train'
Requires-Dist: partial-json-parser>=0.2.1.1.post7; extra == 'tpu-post-train'
Requires-Dist: pathspec>=1.1.1; extra == 'tpu-post-train'
Requires-Dist: pathwaysutils>=0.1.8; extra == 'tpu-post-train'
Requires-Dist: perfetto>=0.16.0; extra == 'tpu-post-train'
Requires-Dist: pexpect>=4.9.0; (sys_platform != 'emscripten' and sys_platform != 'win32') and extra == 'tpu-post-train'
Requires-Dist: pillow>=12.1.1; extra == 'tpu-post-train'
Requires-Dist: platformdirs>=4.9.6; extra == 'tpu-post-train'
Requires-Dist: pluggy>=1.6.0; extra == 'tpu-post-train'
Requires-Dist: portpicker>=1.6.0; extra == 'tpu-post-train'
Requires-Dist: pre-commit>=4.6.0; extra == 'tpu-post-train'
Requires-Dist: prometheus-client>=0.25.0; extra == 'tpu-post-train'
Requires-Dist: prometheus-fastapi-instrumentator>=7.1.0; extra == 'tpu-post-train'
Requires-Dist: promise>=2.3; extra == 'tpu-post-train'
Requires-Dist: prompt-toolkit>=3.0.52; extra == 'tpu-post-train'
Requires-Dist: propcache>=0.4.1; extra == 'tpu-post-train'
Requires-Dist: proto-plus>=1.27.2; extra == 'tpu-post-train'
Requires-Dist: protobuf>=6.33.6; extra == 'tpu-post-train'
Requires-Dist: psutil>=7.2.2; extra == 'tpu-post-train'
Requires-Dist: ptyprocess>=0.7.0; (sys_platform != 'emscripten' and sys_platform != 'win32') and extra == 'tpu-post-train'
Requires-Dist: pure-eval>=0.2.3; extra == 'tpu-post-train'
Requires-Dist: py-cpuinfo>=9.0.0; extra == 'tpu-post-train'
Requires-Dist: pyarrow>=24.0.0; extra == 'tpu-post-train'
Requires-Dist: pyasn1-modules>=0.4.2; extra == 'tpu-post-train'
Requires-Dist: pyasn1>=0.6.3; extra == 'tpu-post-train'
Requires-Dist: pybase64>=1.4.3; extra == 'tpu-post-train'
Requires-Dist: pycnite>=2024.7.31; extra == 'tpu-post-train'
Requires-Dist: pycountry>=26.2.16; extra == 'tpu-post-train'
Requires-Dist: pycparser>=3.0; ((implementation_name != 'PyPy' and platform_python_implementation != 'PyPy') or (implementation_name == 'pypy' and platform_python_implementation == 'PyPy')) and extra == 'tpu-post-train'
Requires-Dist: pydantic-core>=2.46.4; extra == 'tpu-post-train'
Requires-Dist: pydantic-extra-types>=2.11.1; extra == 'tpu-post-train'
Requires-Dist: pydantic>=2.13.4; extra == 'tpu-post-train'
Requires-Dist: pydot>=4.0.1; extra == 'tpu-post-train'
Requires-Dist: pyelftools>=0.32; extra == 'tpu-post-train'
Requires-Dist: pyglove>=0.4.5; extra == 'tpu-post-train'
Requires-Dist: pygments>=2.19.2; extra == 'tpu-post-train'
Requires-Dist: pyink>=25.12.0; extra == 'tpu-post-train'
Requires-Dist: pylint>=4.0.5; extra == 'tpu-post-train'
Requires-Dist: pyparsing>=3.3.2; extra == 'tpu-post-train'
Requires-Dist: pyproject-hooks>=1.2.0; extra == 'tpu-post-train'
Requires-Dist: pytest-mock>=3.15.1; extra == 'tpu-post-train'
Requires-Dist: pytest-xdist>=3.8.0; extra == 'tpu-post-train'
Requires-Dist: pytest>=8.4.2; extra == 'tpu-post-train'
Requires-Dist: python-dateutil>=2.9.0.post0; extra == 'tpu-post-train'
Requires-Dist: python-dotenv>=1.2.2; extra == 'tpu-post-train'
Requires-Dist: python-json-logger>=4.1.0; extra == 'tpu-post-train'
Requires-Dist: pytokens>=0.4.1; extra == 'tpu-post-train'
Requires-Dist: pytype>=2024.10.11; extra == 'tpu-post-train'
Requires-Dist: pyyaml>=6.0.3; extra == 'tpu-post-train'
Requires-Dist: pyzmq>=27.1.0; extra == 'tpu-post-train'
Requires-Dist: qwix>=0.1.6; extra == 'tpu-post-train'
Requires-Dist: ray>=2.55.1; extra == 'tpu-post-train'
Requires-Dist: referencing>=0.37.0; extra == 'tpu-post-train'
Requires-Dist: regex>=2026.4.4; extra == 'tpu-post-train'
Requires-Dist: requests-oauthlib>=2.0.0; extra == 'tpu-post-train'
Requires-Dist: requests>=2.32.5; extra == 'tpu-post-train'
Requires-Dist: rich>=14.3.3; extra == 'tpu-post-train'
Requires-Dist: rpds-py>=0.30.0; extra == 'tpu-post-train'
Requires-Dist: runai-model-streamer-gcs>=0.15.9; extra == 'tpu-post-train'
Requires-Dist: runai-model-streamer-s3>=0.15.9; extra == 'tpu-post-train'
Requires-Dist: runai-model-streamer>=0.15.9; extra == 'tpu-post-train'
Requires-Dist: s3transfer>=0.17.0; extra == 'tpu-post-train'
Requires-Dist: safetensors>=0.7.0; extra == 'tpu-post-train'
Requires-Dist: scipy-stubs>=1.17.1.2; extra == 'tpu-post-train'
Requires-Dist: scipy>=1.17.1; extra == 'tpu-post-train'
Requires-Dist: sentencepiece>=0.2.1; extra == 'tpu-post-train'
Requires-Dist: seqio>=0.0.20; extra == 'tpu-post-train'
Requires-Dist: setuptools>=80.10.2; extra == 'tpu-post-train'
Requires-Dist: shellingham>=1.5.4; extra == 'tpu-post-train'
Requires-Dist: simple-parsing>=0.1.8; extra == 'tpu-post-train'
Requires-Dist: simplejson>=4.1.1; extra == 'tpu-post-train'
Requires-Dist: six>=1.17.0; extra == 'tpu-post-train'
Requires-Dist: sniffio>=1.3.1; extra == 'tpu-post-train'
Requires-Dist: sortedcontainers>=2.4.0; extra == 'tpu-post-train'
Requires-Dist: stack-data>=0.6.3; extra == 'tpu-post-train'
Requires-Dist: starlette>=0.52.1; extra == 'tpu-post-train'
Requires-Dist: supervisor>=4.3.0; extra == 'tpu-post-train'
Requires-Dist: sympy>=1.14.0; extra == 'tpu-post-train'
Requires-Dist: tabulate>=0.10.0; extra == 'tpu-post-train'
Requires-Dist: tenacity>=9.1.4; extra == 'tpu-post-train'
Requires-Dist: tensorboard-data-server>=0.7.2; extra == 'tpu-post-train'
Requires-Dist: tensorboard-plugin-profile>=2.13.0; extra == 'tpu-post-train'
Requires-Dist: tensorboard>=2.20.0; extra == 'tpu-post-train'
Requires-Dist: tensorboardx>=2.6.5; extra == 'tpu-post-train'
Requires-Dist: tensorflow-datasets>=4.9.9; extra == 'tpu-post-train'
Requires-Dist: tensorflow-metadata>=1.17.3; extra == 'tpu-post-train'
Requires-Dist: tensorflow-text>=2.20.1; extra == 'tpu-post-train'
Requires-Dist: tensorflow>=2.20.0; extra == 'tpu-post-train'
Requires-Dist: tensorstore>=0.1.82; extra == 'tpu-post-train'
Requires-Dist: termcolor>=3.3.0; extra == 'tpu-post-train'
Requires-Dist: tiktoken>=0.12.0; extra == 'tpu-post-train'
Requires-Dist: tokamax>=0.0.12; extra == 'tpu-post-train'
Requires-Dist: tokenizers>=0.22.2; extra == 'tpu-post-train'
Requires-Dist: toml>=0.10.2; extra == 'tpu-post-train'
Requires-Dist: tomlkit>=0.14.0; extra == 'tpu-post-train'
Requires-Dist: toolz>=1.1.0; extra == 'tpu-post-train'
Requires-Dist: torch>=2.11.0; extra == 'tpu-post-train'
Requires-Dist: torchax>=0.0.12; extra == 'tpu-post-train'
Requires-Dist: torchvision>=0.26.0; extra == 'tpu-post-train'
Requires-Dist: tornado>=6.5.5; extra == 'tpu-post-train'
Requires-Dist: tpu-info>=0.11.0; extra == 'tpu-post-train'
Requires-Dist: tqdm>=4.67.3; extra == 'tpu-post-train'
Requires-Dist: traitlets>=5.15.0; extra == 'tpu-post-train'
Requires-Dist: transformers>=5.8.0; extra == 'tpu-post-train'
Requires-Dist: treescope>=0.1.10; extra == 'tpu-post-train'
Requires-Dist: triton>=3.6.0; (sys_platform == 'linux') and extra == 'tpu-post-train'
Requires-Dist: typeguard>=2.13.3; extra == 'tpu-post-train'
Requires-Dist: typer>=0.25.1; extra == 'tpu-post-train'
Requires-Dist: typing-extensions>=4.15.0; extra == 'tpu-post-train'
Requires-Dist: typing-inspect>=0.9.0; extra == 'tpu-post-train'
Requires-Dist: typing-inspection>=0.4.2; extra == 'tpu-post-train'
Requires-Dist: tzdata>=2026.2; (sys_platform == 'emscripten' or sys_platform == 'win32') and extra == 'tpu-post-train'
Requires-Dist: uritemplate>=4.2.0; extra == 'tpu-post-train'
Requires-Dist: urllib3>=2.6.3; extra == 'tpu-post-train'
Requires-Dist: uvicorn>=0.46.0; extra == 'tpu-post-train'
Requires-Dist: uvloop>=0.22.1; extra == 'tpu-post-train'
Requires-Dist: virtualenv>=20.36.1; extra == 'tpu-post-train'
Requires-Dist: wadler-lindig>=0.1.7; extra == 'tpu-post-train'
Requires-Dist: watchfiles>=1.1.1; extra == 'tpu-post-train'
Requires-Dist: wcwidth>=0.7.0; extra == 'tpu-post-train'
Requires-Dist: websockets>=16.0; extra == 'tpu-post-train'
Requires-Dist: werkzeug>=3.1.8; extra == 'tpu-post-train'
Requires-Dist: wheel>=0.46.3; extra == 'tpu-post-train'
Requires-Dist: widgetsnbextension>=4.0.15; extra == 'tpu-post-train'
Requires-Dist: win32-setctime>=1.2.0; (sys_platform == 'win32') and extra == 'tpu-post-train'
Requires-Dist: wrapt>=2.1.2; extra == 'tpu-post-train'
Requires-Dist: xgrammar>=0.2.0; extra == 'tpu-post-train'
Requires-Dist: xprof>=2.22.2; extra == 'tpu-post-train'
Requires-Dist: xxhash>=3.7.0; extra == 'tpu-post-train'
Requires-Dist: yapf>=0.43.0; extra == 'tpu-post-train'
Requires-Dist: yarl>=1.23.0; extra == 'tpu-post-train'
Requires-Dist: zipp>=3.23.0; extra == 'tpu-post-train'
Requires-Dist: zstandard>=0.25.0; extra == 'tpu-post-train'
Description-Content-Type: text/markdown

<!--
 # Copyright 2023–2025 Google LLC
#
# 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
#
#    https://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.
 -->

# MaxText

[![MaxText Tests](https://github.com/AI-Hypercomputer/maxtext/actions/workflows/build_and_test_maxtext.yml/badge.svg)](https://github.com/AI-Hypercomputer/maxtext/actions/workflows/build_and_test_maxtext.yml)

> **_NOTE:_** We recommend running MaxText with Python 3.12, as it is our primary supported version. Other Python versions may encounter compatibility issues.

MaxText is a high performance, highly scalable, open-source LLM library and reference implementation written in pure Python/[JAX](https://docs.jax.dev/en/latest/jax-101.html) and targeting Google Cloud TPUs and GPUs for training.

MaxText provides a library of high performance models to choose from, including Gemma, Llama, DeepSeek, Qwen, and Mistral. For each of these models, MaxText supports pre-training (up to tens of thousands of chips) and scalable post-training, with popular techniques like Supervised Fine-Tuning (SFT) and Group Relative Policy Optimization (GRPO, a type of Reinforcement Learning) and Group Sequence Policy Optimization (GSPO, a type of Reinforcement Learning).

MaxText achieves high Model FLOPs Utilization (MFU) and tokens/second from single host to very large clusters while staying simple and largely "optimization-free" thanks to the power of JAX and the XLA compiler.

MaxText is the launching point for ambitious LLM projects both in research and production. We encourage you to start by experimenting with MaxText out of the box and then fork and modify MaxText to meet your needs.

Check out our [Read The Docs site](https://maxtext.readthedocs.io/en/latest/) or directly [Get Started](https://maxtext.readthedocs.io/en/latest/tutorials/first_run.html) with your first MaxText run. If you’re interested in Diffusion models (Wan 2.1, Flux, etc), see the [MaxDiffusion](https://github.com/AI-Hypercomputer/maxdiffusion) repository in our AI Hypercomputer GitHub organization.

## Installation

See our installation guide to [install MaxText with pip from PyPI](https://maxtext.readthedocs.io/en/latest/install_maxtext.html#from-pypi-recommended).

## Decoupled mode
See our guide on running MaxText in decoupled mode, without any GCP dependencies in [Decoupled Mode Guide](https://maxtext.readthedocs.io/en/latest/run_maxtext/decoupled_mode.html).

<!-- NEWS START -->

## 🔥 Latest news 🔥

* \[May 6, 2026\] Kimi-K2-Thinking, Kimi-K2.5 (text), and Kimi-K2.6 (text) are now supported. See [Run_Kimi.md](https://github.com/AI-Hypercomputer/maxtext/blob/main/tests/end_to_end/tpu/kimi/Run_Kimi.md#quantized-variants-k2-thinking-k25-k26) for details.
* \[April 18, 2026\] Added a new notebook [maxtext_with_gepa.ipynb](https://github.com/AI-Hypercomputer/maxtext/blob/3c7d8d27864fc12cccac07786f02bd0e5262c982/src/maxtext/examples/maxtext_with_gepa.ipynb) for optimizing AIME prompts using the GEPA framework with Maxtext.
* \[April 14, 2026\] Legacy `MaxText.*` post-training shims have been removed. Please refer to [src/MaxText/README.md](https://github.com/AI-Hypercomputer/maxtext/blob/0536605a8ca116087ed93178433a67e905be566c/src/MaxText/README.md) for details on the new command locations and how to migrate. 
* \[April 13, 2026\] Kimi-K2 is now supported, along with MuonClip optimizer. Try the [kimi-k2-1t](https://github.com/AI-Hypercomputer/maxtext/blob/fa5b5ebf9a8e4f7a33bd88eae051dc21f3147791/src/maxtext/configs/models/kimi-k2-1t.yml) config and check the [user guide](https://github.com/AI-Hypercomputer/maxtext/blob/fa5b5ebf9a8e4f7a33bd88eae051dc21f3147791/tests/end_to_end/tpu/kimi/Run_Kimi.md).  
* \[April 10, 2026\] [DeepSeek-V3.2](https://arxiv.org/pdf/2512.02556) is now supported, featuring DeepSeek Sparse Attention for long context. Try it out with the [deepseek3.2-671b](https://github.com/AI-Hypercomputer/maxtext/blob/20d93f62a91899dbbb8f23562973d75104411d3a/src/maxtext/configs/models/deepseek3.2-671b.yml) config. See the [user guide](https://github.com/AI-Hypercomputer/maxtext/blob/20d93f62a91899dbbb8f23562973d75104411d3a/tests/end_to_end/tpu/deepseek/Run_DeepSeek.md) for more details.  
* \[April 2, 2026\] Gemma 4 multi-modal models (26B MoE, 31B dense) are now supported! Try them out with our [gemma4-26b](https://github.com/AI-Hypercomputer/maxtext/blob/cdc587f0935a5e2d6f8287b96669cf2e87a0acdc/src/maxtext/configs/models/gemma4-26b.yml) and [gemma4-31b](https://github.com/AI-Hypercomputer/maxtext/blob/cdc587f0935a5e2d6f8287b96669cf2e87a0acdc/src/maxtext/configs/models/gemma4-31b.yml) configs. For more details, see [Run_Gemma4.md](https://github.com/AI-Hypercomputer/maxtext/blob/cdc587f0935a5e2d6f8287b96669cf2e87a0acdc/tests/end_to_end/tpu/gemma4/Run_Gemma4.md).
* \[March 6, 2026\] New features from DeepSeek-AI are now supported: Conditional Memory via Scalable Lookup ([Engram](https://arxiv.org/abs/2601.07372)) and Manifold-Constrained Hyper-Connections ([mHC](https://arxiv.org/abs/2512.24880)). Try them out with our [deepseek-custom](https://github.com/AI-Hypercomputer/maxtext/blob/92f55e3d8123e225c2714a9bac40dd0a7f89efb0/src/maxtext/configs/models/deepseek-custom.yml) starter config.
* \[March 5, 2026\] New `tpu-post-train` [target in PyPI](https://pypi.org/project/maxtext). Please also use this installation option for running vllm_decode. See the [MaxText installation instructions](https://maxtext.readthedocs.io/en/latest/install_maxtext.html) for more info.
* \[March 5, 2026\] [Qwen3-Next](https://github.com/AI-Hypercomputer/maxtext/blob/7656eb8d1c9eb0dd91e617a6fdf6ad805221221a/tests/end_to_end/tpu/qwen/next/run_qwen3_next.md) is now supported.
* \[February 27, 2026\] New MaxText structure! MaxText has been restructured according to [RESTRUCTURE.md](https://github.com/AI-Hypercomputer/maxtext/blob/1b9e38aa0a19b6018feb3aed757406126b6953a1/RESTRUCTURE.md). Please feel free to share your thoughts and feedback. 
* \[December 22, 2025\] [Muon optimizer](https://kellerjordan.github.io/posts/muon) is now supported.
* \[December 10, 2025\] DeepSeek V3.1 is now supported. Use existing configs for [DeepSeek V3 671B](https://github.com/AI-Hypercomputer/maxtext/blob/7656eb8d1c9eb0dd91e617a6fdf6ad805221221a/src/maxtext/configs/models/deepseek3-671b.yml) and load in V3.1 checkpoint to use model.

<details>
<summary><b>View full news archive</b></summary>

* \[December 9, 2025\] [New RL and SFT Notebook tutorials](https://github.com/AI-Hypercomputer/maxtext/tree/7656eb8d1c9eb0dd91e617a6fdf6ad805221221a/src/maxtext/examples) are available.
* \[December 4, 2025\] The [ReadTheDocs documentation site](https://maxtext.readthedocs.io/en/latest/index.html) has been reorganized.
* \[December 3, 2025\] Multi-host support for GSPO and GRPO is now available via [new RL tutorials](https://maxtext.readthedocs.io/en/latest/tutorials/posttraining/rl_on_multi_host.html).
* \[November 20, 2025\] A new guide, [What is Post Training in MaxText?](https://maxtext.readthedocs.io/en/latest/tutorials/post_training_index.html), is now available.
* \[November 6, 2025\] Ironwood TPU co-designed AI stack announced. Read the [blog post on its co-design with MaxText](https://cloud.google.com/blog/products/compute/inside-the-ironwood-tpu-codesigned-ai-stack?e=48754805).
* \[October 29, 2025\] [Optimized models tiering documentation](https://maxtext.readthedocs.io/en/latest/reference/models/tiering.html) has been refreshed.
* \[October 12, 2025\] Added Versioning. Check out our [first set of release notes](https://maxtext.readthedocs.io/en/latest/release_notes.html)!
* \[October 10, 2025\] Post-Training (SFT, RL) via [Tunix](https://github.com/google/tunix) is now available.
* \[September 26, 2025\] Vocabulary tiling ([PR](https://github.com/AI-Hypercomputer/maxtext/pull/2242)) is now supported in MaxText! Adjust config `num_vocab_tiling` to unlock more efficient memory usage.
* \[September 24, 2025\] The GPT-OSS family of models (20B, 120B) is now supported.
* \[September 15, 2025\] MaxText is now available as a [PyPI package](https://pypi.org/project/maxtext). Users can now [install maxtext through pip](https://maxtext.readthedocs.io/en/latest/install_maxtext.html).
* \[September 5, 2025\] MaxText has moved to an `src` layout as part of [RESTRUCTURE.md](https://github.com/AI-Hypercomputer/maxtext/blob/aca5b24931ebcbadb55a82e56ebffe8024874028/RESTRUCTURE.md). For existing environments, please run `pip install -e .` from MaxText root.
* \[August 13, 2025\] The Qwen3 2507 MoE family of models is now supported: MoEs: 235B Thinking & 480B Coder as well as existing dense models: 0.6B, 4B, 8B, 14B, and 32B.
* \[July 27, 2025\] Updated TFLOPS/s calculation ([PR](https://github.com/AI-Hypercomputer/maxtext/pull/1988)) to account for causal attention, dividing the attention flops in half. Accounted for sliding window and chunked attention reduced attention flops in [PR](https://github.com/AI-Hypercomputer/maxtext/pull/2009) and [PR](https://github.com/AI-Hypercomputer/maxtext/pull/2030). Changes impact large sequence configs, as explained in this [doc](https://maxtext.readthedocs.io/en/latest/reference/performance_metrics.html)
* \[July 16, 2025\] We will be restructuring the MaxText repository for improved organization and clarity. Please review the [proposed structure](https://github.com/AI-Hypercomputer/maxtext/blob/aca5b24931ebcbadb55a82e56ebffe8024874028/RESTRUCTURE.md) and provide feedback.
* \[July 11, 2025\] Multi-Token Prediction (MTP) training support\! Adds an auxiliary loss based on predicting multiple future tokens, inspired by [DeepSeek-V3 paper](https://arxiv.org/html/2412.19437v1), to enhance training efficiency.
* \[June 25, 2025\] DeepSeek R1-0528 variant is now supported.
* \[April 24, 2025\] Llama 4 Maverick models are now supported.
</details>
<!-- NEWS END -->

## Use cases

MaxText provides a library of models and demonstrates how to perform pre-training or post-training with high performance and scale.

MaxText leverages [JAX AI libraries](https://docs.cloud.google.com/tpu/docs/jax-ai-stack) and presents a cohesive and comprehensive demonstration of training at scale by using [Flax](https://flax.readthedocs.io/en/latest/) (neural networks), [Tunix](https://github.com/google/tunix) (post-training), [Orbax](https://orbax.readthedocs.io/en/latest/) (checkpointing), [Optax](https://optax.readthedocs.io/en/latest/) (optimization), and [Grain](https://google-grain.readthedocs.io/en/latest/) (dataloading).

In addition to pure text-based LLMs, we also support multi-modal training with Gemma 3, Gemma 4, and Llama 4 VLMs.

### Pre-training

If you’re building models from scratch, MaxText can serve as a reference implementation for experimentation, ideation, and inspiration \- just fork and modify MaxText to train your model, whether it’s a small dense model like Llama 8B, or a large MoE like DeepSeek-V3. Experiment with configs and model design to build the most efficient model on TPU or GPU.

MaxText provides opinionated implementations for how to achieve optimal performance across a wide variety of dimensions like sharding, quantization, and checkpointing.

### Post-training

If you are post-training a model, whether it is proprietary or open source, MaxText provides a scalable framework using Tunix. For RL (like GRPO), we leverage vLLM for sampling and Pathways (soon) for multi-host.

Our goal is to provide a variety of models (dimension “a”) and techniques (dimension “b”), so you can easily explore (a) \* (b) combinations and efficiently train the perfect model for your use case.

Check out these getting started guides:

* Supervised Fine Tuning (SFT)
  * [SFT on Single-Host TPUs](https://maxtext.readthedocs.io/en/latest/tutorials/posttraining/sft.html)
  * [SFT on Multi-Host TPUs](https://maxtext.readthedocs.io/en/latest/tutorials/posttraining/sft_on_multi_host.html)
* Reinforcement Learning (RL)
  * [RL on Single-Host TPUs](https://maxtext.readthedocs.io/en/latest/tutorials/posttraining/rl.html)
  * [RL on Multi-Host TPUs](https://maxtext.readthedocs.io/en/latest/tutorials/posttraining/rl_on_multi_host.html)

### Model library

MaxText aims to provide you with the best OSS models, whether as a reference implementation, or to post-train and then serve with vLLM.

**Supported JAX models in MaxText**

* Google
  * Gemma 4 (26B MoE, 31B Dense)
  * Gemma 3 (4B, 12B, 27B)
  * Gemma 2 (2B, 9B, 27B)
  * Gemma 1 (2B, 7B)
* Alibaba
  * Qwen 3 Next (80B)
  * Qwen 3 MoE (30B, 235B), Qwen 3 MoE 2507 (235B, 480B)
  * Qwen 3 Dense (0.6B, 1.7B, 4B, 8B, 14B, 32B)
  * Qwen 2.5 (1.5B, 7B, 14B)  
* DeepSeek AI
  * DeepSeek V3.2 (671B)  
  * DeepSeek V3.1 (671B)
  * DeepSeek V3 0324 (671B), DeepSeek R1 0528 (671B)
  * DeepSeek V2 (16B, 236B)
* Moonshot AI
  * Kimi K2 (1T), Kimi K2-Thinking (1T)
  * Kimi K2.5 (text), Kimi K2.6 (text)
* Meta
  * Llama 4 Scout (109B) & Maverick (400B)
  * Llama 3.3 (70B), 3.1 (8B, 70B, 405B), 3.0 (8B, 70B, 405B)
  * Llama 2 (7B, 13B, 70B)
* OpenAI
  * GPT-OSS (20B, 120B)
  * GPT3 (52K, 6B, 22B, 175B)
* Mistral AI
  * Mixtral (8x7B, 8x22B)
  * Mistral (7B)
* Diffusion Models
  * See [MaxDiffusion](https://github.com/AI-Hypercomputer/maxdiffusion) (LTXV, Wan 2.1, Flux, SDXL, etc)

## Get involved

Please join our [Discord Channel](https://discord.com/invite/2H9PhvTcDU) and if you have feedback, you can file a feature request, documentation request, or bug report [here](https://github.com/AI-Hypercomputer/maxtext/issues/new/choose).

## License

[Apache License 2.0](LICENSE)
