# Python dependencies for agent-base-image5 (PSB-7451)
# Common packages present across all certs (Photon 4 baseline parity)
# Only these packages belong in the base image; cert-specific deps are handled by certkits.
#
# NOTE: Inline comments are NOT supported when packages are installed via the while loop
#       in the Dockerfile. All comments must be on their own lines (starting with #).
#
# Packages covered:
#   Crypto (pycryptodome), PyNaCl/nacl (pynacl), asn1crypto, bcrypt, cffi, cryptography,
#   ecdsa, idna, lxml, packaging, paramiko, pip (via tdnf), pkg_resources (via setuptools),
#   pyasn1, pycparser, pycryptodome, pyparsing, requests, setuptools, six
#
# Structure:
#   Section 1 — Pure Python wheels (py3-none-any):  direct Artifactory URLs
#   Section 2 — Source distributions (.tar.gz):     direct Artifactory URLs
#   Section 3 — Platform-specific wheels:            Linux manylinux URLs
#                 abi3 wheels (bcrypt, pynacl) are cp3.9+/cp3.8+ stable ABI — compatible with Python 3.14
#                 cp310 wheels (cffi, lxml) — Dockerfile fallback logic retries from index if wheel is rejected
#   Section 4 — Index-based installs:                plain package names, latest from upstream-pypi-virtual

# =============================================================================
# Section 1: Pure Python wheels — direct Artifactory URLs
# =============================================================================
https://packages.vcfd.broadcom.net/artifactory/api/pypi/upstream-pypi-virtual/packages/packages/51/79/119091c98e2bf49e24ed9f3ae69f816d715d2904aefa6a2baa039a2ba0b0/ecdsa-0.19.2-py2.py3-none-any.whl
https://packages.vcfd.broadcom.net/artifactory/api/pypi/upstream-pypi-virtual/packages/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl
https://packages.vcfd.broadcom.net/artifactory/api/pypi/upstream-pypi-virtual/packages/packages/82/5b/eadf6d45de38d30ab603f49393b6cd2cbe7e233af8cf90197e32782b68a9/paramiko-5.0.0-py3-none-any.whl
https://packages.vcfd.broadcom.net/artifactory/api/pypi/upstream-pypi-virtual/packages/packages/9d/76/f789f7a86709c6b087c5a2f52f911838cad707cc613162401badc665acfe/setuptools-82.0.1-py3-none-any.whl

# =============================================================================
# Section 2: Index-pinned installs — resolved dynamically via --index-url so no
# Artifactory content-hash URL needs to be hardcoded here.
#   cryptography==49.0.0 — source build requires maturin (Rust backend), not in
#     this image; pinning ensures the PE-recommended version installs via the
#     pre-built cp311-abi3 wheel from Artifactory (verified in build.log).
#   pycparser==3.0, requests==2.34.2 — bumped from 2.23/2.32.5 to satisfy SRP
#     ctl_comp_package_lts_version for vcf_9.1.1; both versions confirmed
#     available on upstream-pypi-virtual.
# =============================================================================
cryptography==49.0.0
pycparser==3.0
requests==2.34.2

# =============================================================================
# Section 3: Platform-specific wheels — Linux manylinux URLs (team-provided Jun 2026)
# abi3 wheels (bcrypt, pynacl) are Python 3.9+/3.8+ stable ABI — compatible with Python 3.14
# cp310 wheels (cffi, lxml) — may not be compatible with Python 3.14;
#   Dockerfile fallback retries name==version then latest from index if wheel is rejected
# bcrypt: PE requires 6.0.0+ but Artifactory upstream-pypi-virtual only mirrors up to 5.0.0.
#   Using 5.0.0 abi3 wheel as stopgap; upgrade to >=6.0.0 once Artifactory mirrors it.
#   TODO: raise Artifactory mirror request for bcrypt 6.0.0+
# =============================================================================
https://packages.vcfd.broadcom.net/artifactory/api/pypi/upstream-pypi-virtual/packages/packages/24/b4/11f8a31d8b67cca3371e046db49baa7c0594d71eb40ac8121e2fc0888db0/bcrypt-5.0.0-cp39-abi3-manylinux_2_28_x86_64.whl
https://packages.vcfd.broadcom.net/artifactory/api/pypi/upstream-pypi-virtual/packages/packages/98/29/9b366e70e243eb3d14a5cb488dfd3a0b6b2f1fb001a203f653b93ccfac88/cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
https://packages.vcfd.broadcom.net/artifactory/api/pypi/upstream-pypi-virtual/packages/packages/7a/16/cb391ee4b90186fa16d9ebcbe3ea96c71b8da3b0686386c8dcbcc3c67d44/lxml-6.1.1-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl
# pynacl covers both PyNaCl and nacl namespace imports
https://packages.vcfd.broadcom.net/artifactory/api/pypi/upstream-pypi-virtual/packages/packages/3e/d0/f301f83ac8dbe53442c5a43f6a39016f94f754d7a9815a875b65e218a307/pynacl-1.6.2-cp38-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl

# =============================================================================
# Section 4: Index-based installs — latest available from upstream-pypi-virtual
# No specific wheel URL required; pip resolves the latest compatible version.
# pycryptodome provides the "Crypto" namespace (import Crypto)
# pkg_resources is part of setuptools (already installed above)
# pip is installed via tdnf python3-pip (not reinstalled here)
# Version floors enforce PE/Confluence security requirements over tdnf-installed system versions:
#   idna>=3.10        — Confluence target 3.10  (tdnf installs 3.3;   must be overridden)
#   six>=1.17.0       — Confluence target 1.17.0 (tdnf installs 1.16.0; must be overridden)
#   asn1crypto==1.5.1 — SRP ctl_comp_package_lts_version target for vcf_9.1.1; exact
#     version confirmed available on upstream-pypi-virtual (also the latest there)
#   pyasn1==0.6.3     — same control; exact version confirmed available (also latest)
#   pycryptodome: PE/LTS requires 3.23.0+ but upstream-pypi-virtual only mirrors up
#     to 3.18.0. Left unpinned (installs 3.18.0) as a stopgap.
#     TODO: raise Artifactory mirror request for pycryptodome 3.23.0+
# =============================================================================
asn1crypto==1.5.1
idna>=3.10
pyasn1==0.6.3
pycryptodome
pyparsing
six>=1.17.0