# uv-backed vpython spec for the chromium repository.
#
# The companion //vpython.toml.uv.lock is generated, not hand-edited. After
# changing a dependency here, run 'vpython3' (or 'vpython3 -vpython-tool
# upgrade') locally to resynchronize it, and commit both files together.

requires-python = '>=3.11,<3.12'
dependencies = [
  'protobuf==7.36.0',
  'six==1.17.0',
  "pytype==2024.1.24; sys_platform == 'linux' and platform_machine == 'x86_64'",
  "importlab==0.8; sys_platform == 'linux' and platform_machine == 'x86_64'",
  "networkx==2.5; sys_platform == 'linux' and platform_machine == 'x86_64'",
  "decorator==5.0.9; sys_platform == 'linux' and platform_machine == 'x86_64'",
  "libcst==1.1.0; sys_platform != 'win32' or platform_machine != 'x86'",
  'typing-extensions==4.13.2',
  'tabulate==0.8.10',
  "ninja==1.10.2.4+chromium.1; sys_platform == 'linux' and platform_machine == 'x86_64'",
  'mypy-extensions==0.4.3',
  'numpy==1.23.5+chromium.4',
  'pexpect==4.8.0+chromium.1',
  'ptyprocess==0.7.0',
  'psutil==5.8.0+chromium.3',
  'requests==2.34.2',
  'pillow==10.4.0',
  'opencv-python==4.8.1.78+chromium.1',
  'pyyaml==5.4.1+chromium.1',
  'mock==2.0.0',
  'parameterized==0.7.1',
  'pbr==3.0.0',
  'setuptools==68.0.0 ; python_version < "3.14"',
  'setuptools>=75.0.0 ; python_version >= "3.14"',
  'pyfakefs==5.5.0',
  'jsonlines==1.2.0',
  'python-dateutil==2.9.0',
  'charset-normalizer==2.0.4',
  'pyasn1==0.4.5',
  'pyasn1-modules==0.2.4',
  'rsa==3.4.2',
  'cachetools==5.3.3',
  'uritemplate==4.1.1',
  'google-auth==2.16.2',
  'googleapis-common-protos==1.75.1',
  'google-api-core==2.34.0',
  'google-auth-httplib2==0.1.0',
  'google-api-python-client==2.111.0',
  'google-cloud-core==2.4.3',
  'grpcio-status==1.59.3 ; python_version < "3.14"',
  'grpcio-status>=1.75.1 ; python_version >= "3.14"',
  'oauth2client==3.0.0',
  'crcmod==1.7+chromium.4',
  'grpcio==1.59.3 ; python_version < "3.14"',
  'grpcio>=1.75.1 ; python_version >= "3.14"',
  'grpc-google-iam-v1==0.12.3',
  'proto-plus==1.28.3',
  'google-cloud-kms==2.11.1',
  'google-cloud-pubsub==2.9.0',
  'typing-inspect==0.7.1',
  'html5lib==1.0.1',
  'mozdebug==0.3.0',
  'mozinfo==1.2.2',
  'blessed==1.20.0',
  'wcwidth==0.2.5',
  'jinxed==1.2.0',
  'ansicon==1.89.0',
  'mozlog==8.1.0',
  'mozprocess==1.3.1',
  'mozsystemmonitor==1.0.1',
  'urllib3==2.4.0',
  'blessings==1.7',
  'mozfile==2.0.0',
  'mozterm==1.0.0',
  'webencodings==0.5.1',
  'certifi==2025.4.26',
  'chardet==3.0.4',
  'idna==2.8',
  'distro==1.4.0',
  'aioquic==1.2.0+chromium.1',
  'pylsqpack==0.3.12',
  'cryptography==43.0.0',
  'cffi==1.15.1+chromium.2',
  'pycparser==2.19',
  'ecdsa==0.17.0',
  'brotli==1.0.9',
  'iniconfig==1.1.1',
  'exceptiongroup==1.1.2',
  'tomli==2.0.1',
  'pytest==7.3.1',
  'pytest-asyncio==0.19.0',
  'attrs==24.2.0',
  'more-itertools==4.1.0',
  'pluggy==0.13.1',
  'py==1.11.0',
  'funcsigs==1.0.2',
  'atomicwrites==1.3.0',
  'colorama==0.4.1',
  'coverage==7.3.1',
  'websocket-client==1.8.0',
  'websockets==11.0.3',
  'beautifulsoup4==4.9.0',
  'soupsieve==1.9.5',
  'pytz==2024.1',
  "pywin32==306; sys_platform == 'win32'",
  "pyobjc==10.0; sys_platform == 'darwin'",
  'pyparsing==3.2.0',
  'httplib2==0.22.0',
  'pandas==1.5.3+chromium.1',
  'hjson==3.1.0',
  'frozendict==2.0.6',
  'ordered-set==4.1.0',
  'perfetto==0.14.0',
  # Keep this version synchronized with src/third_party/webdriver/pylib in //DEPS.
  'selenium==4.33.0',
  'service-identity==24.1.0',
  'trio==0.30.0',
  'trio-websocket==0.12.2',
  'outcome==1.2.0',
  'sniffio==1.3.0',
  'async-generator==1.10',
  'wsproto==1.1.0',
  'h11==0.13.0',
  'sortedcontainers==2.4.0',
  'pyopenssl==24.2.1',
  'markdown==3.3.4',
  'importlib-metadata==1.6.0',
  'zipp==3.1.0',
  'google-cloud-secret-manager==2.10.0',
  'immutabledict==4.1.0',
  'packaging==25.0',
  "db-dtypes==1.2.0; sys_platform != 'win32' or platform_machine != 'x86'",
  'google-cloud-bigquery==3.38.0',
  'google-cloud-bigquery-storage==2.38.0',
  'google-crc32c==1.5.0+chromium.1',
  'google-resumable-media==2.3.0',
  "pyarrow==15.0.2; sys_platform != 'win32' or platform_machine != 'x86'",
  'jinja2==3.1.2',
  'pysocks==1.7.1',
  'pycnite==2023.10.11',
  'pydot==1.4.2',
  'toml==0.10.2',
  'markupsafe==2.0.1',
  'apipkg==1.5',
  'mako==1.2.3'
]
