#    Licensed to the Apache Software Foundation (ASF) under one or more
#    contributor license agreements.  See the NOTICE file distributed with
#    this work for additional information regarding copyright ownership.
#    The ASF licenses this file to You 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
#
#       http://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.

# Autogenerated requirements file for Apache Beam py312 container image.
# Run ./gradlew :sdks:python:container:generatePythonRequirementsAll to update.
# Do not edit manually, adjust ../base_image_requirements_manual.txt or
# Apache Beam's setup.py instead, and regenerate the list.
# You will need Python interpreters for all versions supported by Beam, see:
# https://s.apache.org/beam-python-dev-wiki
# Reach out to a committer if you need help.

absl-py==2.5.0
aiohappyeyeballs==2.7.1
aiohttp==3.14.3
aiosignal==1.4.0
annotated-doc==0.0.5
annotated-types==0.8.0
anyio==4.14.2
asn1crypto==1.5.1
astor==0.8.1
astunparse==1.6.3
attrs==26.1.0
beartype==0.22.9
beautifulsoup4==4.15.0
blake3==1.0.9
bs4==0.0.2
build==1.5.0
cachetools==6.2.6
cbor2==6.1.4
certifi==2026.7.22
cffi==2.1.1
charset-normalizer==3.5.0
click==8.4.2
cloud-sql-python-connector==1.21.0
cloudpickle==3.1.2
compressed-tensors==0.10.2
crcmod==1.7
cryptography==50.0.0
cuda-bindings==13.3.1
cuda-pathfinder==1.6.0
cuda-toolkit==13.0.3.0
cupy-cuda12x==14.1.1
Cython==3.2.9
defusedxml==0.7.1
depyf==0.19.0
detect-installer==0.1.0
dill==0.3.1.1
diskcache==5.6.3
distro==1.9.0
dnspython==2.8.0
docker==7.2.0
docstring_parser==0.18.0
einops==0.8.2
email-validator==2.3.0
execnet==2.1.2
fastapi==0.141.1
fastapi-cli==0.0.32
fastapi-cloud-cli==0.23.0
fastar==0.11.0
fastavro==1.12.2
fasteners==0.20
filelock==3.32.3
flatbuffers==25.12.19
freezegun==1.5.5
frozenlist==1.8.0
fsspec==2026.7.0
future==1.0.0
gast==0.7.0
gguf==0.19.0
google-api-core==2.34.0
google-api-python-client==2.198.0
google-apitools==0.5.31
google-auth==2.56.3
google-auth-httplib2==0.2.1
google-cloud-aiplatform==1.164.0
google-cloud-bigquery==3.43.0
google-cloud-bigquery-storage==2.40.0
google-cloud-bigtable==2.44.0
google-cloud-build==3.38.1
google-cloud-core==2.6.1
google-cloud-dataflow-client==0.13.0
google-cloud-datastore==2.26.0
google-cloud-dlp==3.38.0
google-cloud-kms==3.16.0
google-cloud-language==2.21.0
google-cloud-monitoring==2.31.0
google-cloud-profiler==4.1.0
google-cloud-pubsub==2.39.1
google-cloud-recommendations-ai==0.10.18
google-cloud-resource-manager==1.18.0
google-cloud-secret-manager==2.30.0
google-cloud-spanner==3.69.1
google-cloud-storage==3.13.1
google-cloud-videointelligence==2.20.0
google-cloud-vision==3.15.0
google-crc32c==1.8.0
google-genai==2.18.1
google-pasta==0.2.0
google-resumable-media==2.10.1
googleapis-common-protos==1.75.1
greenlet==3.5.5
grpc-google-iam-v1==0.14.5
grpc-interceptor==0.15.4
grpcio==1.83.0
grpcio-status==1.83.0
guppy3==3.1.7
h11==0.16.0
h2==4.4.1
h5py==3.14.0
hf-xet==1.6.0
hpack==4.2.0
httpcore==1.0.9
httplib2==0.32.0
httptools==0.8.0
httpx==0.28.1
huggingface_hub==0.36.2
hyperframe==6.1.0
hypothesis==6.148.3
idna==3.18
iniconfig==2.3.0
interegular==0.3.3
jaraco.classes==3.4.0
jaraco.context==6.1.2
jaraco.functools==4.6.0
jeepney==0.9.0
Jinja2==3.1.6
jiter==0.16.0
joblib==1.5.3
jsonpickle==4.1.2
jsonschema==4.26.0
jsonschema-specifications==2025.9.1
keras==3.15.1
keyring==25.7.0
keyrings.google-artifactregistry-auth==1.1.2
lark==1.2.2
libclang==18.1.1
linkify-it-py==2.1.0
llguidance==0.7.30
llvmlite==0.44.0
lm-format-enforcer==0.10.12
markdown-it-py==4.2.0
MarkupSafe==3.0.3
mdit-py-plugins==0.6.1
mdurl==0.1.2
memray==1.19.3
mistral_common==1.11.7
ml_dtypes==0.6.0
mmh3==5.2.1
mock==5.2.0
more-itertools==11.1.0
mpmath==1.3.0
msgpack==1.2.1
msgspec==0.21.1
multidict==6.7.1
namex==0.1.0
networkx==3.6.1
ninja==1.13.0
nltk==3.10.3
numba==0.61.2
numpy==2.2.6
nvidia-cublas==13.1.1.3
nvidia-cublas-cu12==12.6.4.1
nvidia-cuda-cupti==13.0.85
nvidia-cuda-cupti-cu12==12.6.80
nvidia-cuda-nvrtc==13.0.88
nvidia-cuda-nvrtc-cu12==12.6.77
nvidia-cuda-runtime==13.0.96
nvidia-cuda-runtime-cu12==12.6.77
nvidia-cudnn-cu12==9.5.1.17
nvidia-cudnn-cu13==9.20.0.48
nvidia-cufft==12.0.0.61
nvidia-cufft-cu12==11.3.0.4
nvidia-cufile==1.15.1.6
nvidia-cufile-cu12==1.11.1.6
nvidia-curand==10.4.0.35
nvidia-curand-cu12==10.3.7.77
nvidia-cusolver==12.0.4.66
nvidia-cusolver-cu12==11.7.1.2
nvidia-cusparse==12.6.3.3
nvidia-cusparse-cu12==12.5.4.2
nvidia-cusparselt-cu12==0.6.3
nvidia-cusparselt-cu13==0.8.1
nvidia-nccl-cu12==2.26.2
nvidia-nccl-cu13==2.29.7
nvidia-nvjitlink==13.3.33
nvidia-nvjitlink-cu12==12.6.85
nvidia-nvshmem-cu13==3.4.5
nvidia-nvtx==13.0.85
nvidia-nvtx-cu12==12.6.77
oauth2client==4.1.3
objsize==0.7.1
openai==1.107.1
openai-harmony==0.0.8
opencv-python-headless==5.0.0.93
opentelemetry-api==1.44.0
opentelemetry-resourcedetector-gcp==1.14.0
opentelemetry-sdk==1.44.0
opentelemetry-semantic-conventions==0.65b0
opt_einsum==3.4.0
optree==0.19.1
oracledb==4.0.2
orjson==3.12.0
outlines_core==0.2.10
packaging==26.3
pandas==2.3.3
parameterized==0.9.0
partial-json-parser==0.2.1.1.post7
pg8000==1.31.5
pillow==12.3.0
pip==26.2.1
platformdirs==4.11.3
pluggy==1.6.0
portalocker==3.2.0
prometheus-fastapi-instrumentator==8.1.0
prometheus_client==0.26.0
propcache==0.5.2
proto-plus==1.28.3
protobuf==6.33.6
psutil==7.2.2
psycopg2-binary==2.9.12
py-cpuinfo==9.0.0
pyarrow==25.0.1
pyasn1==0.6.4
pyasn1_modules==0.4.2
pybase64==1.5.0
pycountry==26.2.16
pycparser==3.0
pydantic==2.13.4
pydantic-extra-types==2.11.2
pydantic-settings==2.15.0
pydantic_core==2.46.4
pydot==1.4.2
Pygments==2.20.0
PyHamcrest==2.1.0
pymongo==4.17.0
PyMySQL==1.2.0
pyparsing==3.3.2
pyproject_hooks==1.2.0
pystack==1.7.1
pytest==9.1.1
pytest-timeout==2.4.0
pytest-xdist==3.8.0
python-dateutil==2.9.0.post0
python-dotenv==1.2.2
python-json-logger==4.1.0
python-multipart==0.0.32
python-tds==1.17.1
pytz==2026.3.post1
PyYAML==6.0.3
pyzmq==27.1.0
qdrant-client==1.19.0
ray==2.57.0
referencing==0.37.0
regex==2026.7.19
requests==2.34.2
requests-mock==1.12.1
rich==15.0.0
rich-toolkit==0.20.3
rignore==0.8.1
rpds-py==2026.6.3
rsa==4.9.1
safetensors==0.8.0
scikit-learn==1.7.2
scipy==1.18.0
scramp==1.4.17
SecretStorage==3.5.0
sentencepiece==0.2.2
sentry-sdk==2.68.0
setproctitle==1.3.7
setuptools==79.0.1
shellingham==1.5.4
six==1.17.0
sniffio==1.3.1
sortedcontainers==2.4.0
soundfile==0.14.0
soupsieve==2.9.2
soxr==1.1.0
SQLAlchemy==2.0.52
sqlalchemy_pytds==1.0.2
sqlparse==0.6.0
starlette==1.6.0
sympy==1.14.0
tenacity==9.1.4
tensorflow==2.21.0
tensorflow-cpu-aws==2.21.0;platform_machine=="aarch64"
termcolor==3.3.0
testcontainers==4.15.0
textual==8.2.8
threadpoolctl==3.6.0
tiktoken==0.13.0
tokenizers==0.21.4
torch==2.7.1
torchaudio==2.7.1
torchvision==0.22.1
tqdm==4.70.0
transformers==4.55.4
triton==3.3.1
typer==0.27.1
typing-inspection==0.4.4
typing_extensions==4.16.0
tzdata==2026.3
uc-micro-py==2.0.0
uritemplate==4.2.0
urllib3==2.7.0
uvicorn==0.52.3
uvloop==0.22.1
virtualenv-clone==0.5.7
vllm==0.10.1.1
watchfiles==1.2.0
websockets==16.1.1
wheel==0.48.0
wrapt==2.3.0
xformers==0.0.31
xgrammar==0.1.21
yarl==1.24.5
zstandard==0.25.0
