From 31c4198cee3422f33dd43558edf9d414f79cd6a1 Mon Sep 17 00:00:00 2001 From: Claudia Pellegrino Date: Sun, 2 Mar 2025 01:35:48 +0100 Subject: [PATCH] fix: let fewer conflicts occur across requirements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **tl;dr** Introduce a common umbrella constraints file (that works across requirement extras) to avoid package version conflicts and to reduce the need for manual pinning in `*.in` files. Previously, spurious package version conflicts could sometimes occur across requirements for `pip install -e .`, `pip install -e .[help]`, `pip install -e .[playwright]`, and so on. Here’s why: - There are five different requirement configs: the set of base requirements (`requirements.txt`) and four additional requirement sets\ (aka "extras"): `dev`, `help`, `browser`, and `playwright`. - Each of those five configurations spans its own tree of dependencies [1]. Those five trees can slightly overlap. (For example, `greenlet` is a transitive requirement for both the `help` and `playwright` trees, respectively.) - If you want to resolve those dependency trees so you get concrete version numbers, you can’t just look at each tree independently. This is because when trees overlap, they sometimes pull in the same package for different reasons, respectively, and maybe with different version constraints. For example, the `help` tree pulls in `greenlet`, because `sqlalchemy` requires it. At the same time, the `playwright` tree also pulls in `greenlet` because it’s needed by the `playwright` package. Resolving those constraints strictly individually (i.e., per tree) is usually a mistake. It may work for a while, but occasionally you’re going to end up with two conflicting versions of the same package. To prevent those version conflicts from occurring, the five `pip-compile` invocations were designed as a chain. The process starts at the smallest tree (i.e., the base `requirements.in` file). It calculates the version numbers for the tree, remembers the result, and feeds it into the calculation of the next tree. The chain design somewhat helped mitigate conflicts, but not always. The reason for that is that the chain works like a greedy algorithm: once a decision has been made for a given package in a tree, that decision is immediately final, and the compilation process isn’t allowed to go back and change that decision if it learns new information. New information comes in all the time, because larger trees usually have more complex constraints than smaller trees, and the process visits larger trees later, facing additional constraints as it hops from tree to tree. Sometimes it bumps into a new constraint against a package for which it has already made a decision earlier (i.e., it has pinned the concrete version number in the `requirements*.txt` file of an earlier tree). That’s why the greedy chain-based method, even though it mostly works just fine, can never avoid spurious conflicts entirely. To help mitigate those conflicts, pinning entries were manually added to `requirements.in` files on a case-by-case basis as conflicts occurred. Those entries can make the file difficult to reason about, and they must be kept in sync manually as packages get upgraded. That’s a maintenance burden. Turning the chain into an umbrella may help. Instead of hopping from tree to tree, look at the entire forest at once, calculate all the concrete version numbers for all trees in one fell swoop, and save the results in a common, all-encompassing umbrella file. Armed with the umbrella file (called `common-constraints.txt`), visit each tree (in any order – it no longer matters) and feed it just the umbrella file as a constraint, along with its own `*.in` file as the input. Chaining is no longer necessary, because the umbrella file already contains all version constraints for all the packages one tree could possibly need, and then some. This technique should reduce manual pinning inside `*.in` files, and makes sure that computed version numbers no longer contradict each other across trees. [1]: From a graph theory point of view, I’m being blatantly incorrect here; those dependency graphs are usually not trees, because they have cycles. I’m still going to call them "trees" for the sake of this discussion, because the word "tree" feels less abstract and intimidating and hopefully more relatable. --- requirements.txt | 287 +++++++++--- requirements/common-constraints.txt | 557 +++++++++++++++++++++++ requirements/requirements-browser.in | 3 - requirements/requirements-browser.txt | 163 +++---- requirements/requirements-dev.in | 4 - requirements/requirements-dev.txt | 258 +++++++---- requirements/requirements-help.in | 8 - requirements/requirements-help.txt | 209 ++++----- requirements/requirements-playwright.in | 5 - requirements/requirements-playwright.txt | 19 +- requirements/requirements.in | 8 - scripts/pip-compile.sh | 24 +- 12 files changed, 1133 insertions(+), 412 deletions(-) create mode 100644 requirements/common-constraints.txt diff --git a/requirements.txt b/requirements.txt index f4b51e164..5258187ba 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,242 +2,386 @@ # This file is autogenerated by pip-compile with Python 3.12 # by the following command: # -# pip-compile --allow-unsafe --output-file=requirements.txt requirements/requirements.in +# pip-compile --allow-unsafe --constraint=requirements/common-constraints.txt --output-file=requirements.txt requirements/requirements.in # aiohappyeyeballs==2.4.6 - # via aiohttp + # via + # -c requirements/common-constraints.txt + # aiohttp aiohttp==3.11.13 - # via litellm + # via + # -c requirements/common-constraints.txt + # litellm aiosignal==1.3.2 - # via aiohttp + # via + # -c requirements/common-constraints.txt + # aiohttp annotated-types==0.7.0 - # via pydantic + # via + # -c requirements/common-constraints.txt + # pydantic anyio==4.8.0 # via + # -c requirements/common-constraints.txt # httpx # openai # watchfiles attrs==25.1.0 # via + # -c requirements/common-constraints.txt # aiohttp # jsonschema # referencing backoff==2.2.1 # via + # -c requirements/common-constraints.txt # -r requirements/requirements.in # posthog beautifulsoup4==4.13.3 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in certifi==2025.1.31 # via + # -c requirements/common-constraints.txt # httpcore # httpx # requests cffi==1.17.1 # via + # -c requirements/common-constraints.txt # sounddevice # soundfile charset-normalizer==3.4.1 - # via requests + # via + # -c requirements/common-constraints.txt + # requests click==8.1.8 - # via litellm + # via + # -c requirements/common-constraints.txt + # litellm configargparse==1.7 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in diff-match-patch==20241021 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in diskcache==5.6.3 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in distro==1.9.0 # via + # -c requirements/common-constraints.txt # openai # posthog filelock==3.17.0 - # via huggingface-hub + # via + # -c requirements/common-constraints.txt + # huggingface-hub flake8==7.1.2 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in frozenlist==1.5.0 # via + # -c requirements/common-constraints.txt # aiohttp # aiosignal fsspec==2025.2.0 - # via huggingface-hub + # via + # -c requirements/common-constraints.txt + # huggingface-hub gitdb==4.0.12 - # via gitpython + # via + # -c requirements/common-constraints.txt + # gitpython gitpython==3.1.44 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in grep-ast==0.6.1 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in h11==0.14.0 - # via httpcore + # via + # -c requirements/common-constraints.txt + # httpcore httpcore==1.0.7 - # via httpx + # via + # -c requirements/common-constraints.txt + # httpx httpx==0.28.1 # via + # -c requirements/common-constraints.txt # litellm # openai huggingface-hub==0.29.1 - # via tokenizers + # via + # -c requirements/common-constraints.txt + # tokenizers idna==3.10 # via + # -c requirements/common-constraints.txt # anyio # httpx # requests # yarl importlib-metadata==7.2.1 # via + # -c requirements/common-constraints.txt # -r requirements/requirements.in # litellm importlib-resources==6.5.2 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in jinja2==3.1.5 - # via litellm + # via + # -c requirements/common-constraints.txt + # litellm jiter==0.8.2 - # via openai + # via + # -c requirements/common-constraints.txt + # openai json5==0.10.0 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in jsonschema==4.23.0 # via + # -c requirements/common-constraints.txt # -r requirements/requirements.in # litellm jsonschema-specifications==2024.10.1 - # via jsonschema + # via + # -c requirements/common-constraints.txt + # jsonschema litellm==1.61.16 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in markdown-it-py==3.0.0 - # via rich + # via + # -c requirements/common-constraints.txt + # rich markupsafe==3.0.2 - # via jinja2 + # via + # -c requirements/common-constraints.txt + # jinja2 mccabe==0.7.0 - # via flake8 + # via + # -c requirements/common-constraints.txt + # flake8 mdurl==0.1.2 - # via markdown-it-py + # via + # -c requirements/common-constraints.txt + # markdown-it-py mixpanel==4.10.1 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in monotonic==1.6 - # via posthog + # via + # -c requirements/common-constraints.txt + # posthog multidict==6.1.0 # via + # -c requirements/common-constraints.txt # aiohttp # yarl networkx==3.2.1 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in numpy==1.26.4 # via + # -c requirements/common-constraints.txt # -r requirements/requirements.in # scipy # soundfile openai==1.64.0 - # via litellm + # via + # -c requirements/common-constraints.txt + # litellm packaging==24.2 # via + # -c requirements/common-constraints.txt # -r requirements/requirements.in # huggingface-hub pathspec==0.12.1 # via + # -c requirements/common-constraints.txt # -r requirements/requirements.in # grep-ast pexpect==4.9.0 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in pillow==10.4.0 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in posthog==3.16.0 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in prompt-toolkit==3.0.50 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in propcache==0.3.0 # via + # -c requirements/common-constraints.txt # aiohttp # yarl psutil==7.0.0 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in ptyprocess==0.7.0 - # via pexpect + # via + # -c requirements/common-constraints.txt + # pexpect pycodestyle==2.12.1 - # via flake8 + # via + # -c requirements/common-constraints.txt + # flake8 pycparser==2.22 - # via cffi + # via + # -c requirements/common-constraints.txt + # cffi pydantic==2.10.6 # via + # -c requirements/common-constraints.txt # litellm # openai pydantic-core==2.27.2 - # via pydantic + # via + # -c requirements/common-constraints.txt + # pydantic pydub==0.25.1 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in pyflakes==3.2.0 - # via flake8 + # via + # -c requirements/common-constraints.txt + # flake8 pygments==2.19.1 - # via rich + # via + # -c requirements/common-constraints.txt + # rich pypandoc==1.15 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in pyperclip==1.9.0 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in python-dateutil==2.9.0.post0 - # via posthog + # via + # -c requirements/common-constraints.txt + # posthog python-dotenv==1.0.1 - # via litellm + # via + # -c requirements/common-constraints.txt + # litellm pyyaml==6.0.2 # via + # -c requirements/common-constraints.txt # -r requirements/requirements.in # huggingface-hub referencing==0.36.2 # via + # -c requirements/common-constraints.txt # jsonschema # jsonschema-specifications regex==2024.11.6 - # via tiktoken + # via + # -c requirements/common-constraints.txt + # tiktoken requests==2.32.3 # via + # -c requirements/common-constraints.txt # huggingface-hub # mixpanel # posthog # tiktoken rich==13.9.4 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in rpds-py==0.23.1 # via + # -c requirements/common-constraints.txt # jsonschema # referencing scipy==1.13.1 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in six==1.17.0 # via + # -c requirements/common-constraints.txt # mixpanel # posthog # python-dateutil smmap==5.0.2 - # via gitdb + # via + # -c requirements/common-constraints.txt + # gitdb sniffio==1.3.1 # via + # -c requirements/common-constraints.txt # anyio # openai socksio==1.0.0 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in sounddevice==0.5.1 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in soundfile==0.13.1 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in soupsieve==2.6 - # via beautifulsoup4 + # via + # -c requirements/common-constraints.txt + # beautifulsoup4 tiktoken==0.9.0 - # via litellm + # via + # -c requirements/common-constraints.txt + # litellm tokenizers==0.19.1 # via - # -r requirements/requirements.in + # -c requirements/common-constraints.txt # litellm tqdm==4.67.1 # via + # -c requirements/common-constraints.txt # huggingface-hub # openai tree-sitter==0.21.3 # via + # -c requirements/common-constraints.txt # -r requirements/requirements.in # grep-ast # tree-sitter-languages tree-sitter-languages==1.10.2 - # via grep-ast + # via + # -c requirements/common-constraints.txt + # grep-ast typing-extensions==4.12.2 # via + # -c requirements/common-constraints.txt # anyio # beautifulsoup4 # huggingface-hub @@ -247,17 +391,28 @@ typing-extensions==4.12.2 # referencing urllib3==2.3.0 # via + # -c requirements/common-constraints.txt # mixpanel # requests watchfiles==1.0.4 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in wcwidth==0.2.13 - # via prompt-toolkit + # via + # -c requirements/common-constraints.txt + # prompt-toolkit yarl==1.18.3 - # via aiohttp + # via + # -c requirements/common-constraints.txt + # aiohttp zipp==3.21.0 - # via importlib-metadata + # via + # -c requirements/common-constraints.txt + # importlib-metadata # The following packages are considered to be unsafe in a requirements file: pip==25.0.1 - # via -r requirements/requirements.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements.in diff --git a/requirements/common-constraints.txt b/requirements/common-constraints.txt new file mode 100644 index 000000000..0fe79f110 --- /dev/null +++ b/requirements/common-constraints.txt @@ -0,0 +1,557 @@ +# +# This file is autogenerated by pip-compile with Python 3.12 +# by the following command: +# +# pip-compile --allow-unsafe --output-file=requirements/common-constraints.txt requirements/requirements-browser.in requirements/requirements-dev.in requirements/requirements-help.in requirements/requirements-playwright.in requirements/requirements.in +# +aiohappyeyeballs==2.4.6 + # via aiohttp +aiohttp==3.11.13 + # via + # huggingface-hub + # litellm + # llama-index-core +aiosignal==1.3.2 + # via aiohttp +alabaster==1.0.0 + # via sphinx +altair==5.5.0 + # via streamlit +annotated-types==0.7.0 + # via pydantic +anyio==4.8.0 + # via + # httpx + # openai + # watchfiles +attrs==25.1.0 + # via + # aiohttp + # jsonschema + # referencing +babel==2.17.0 + # via sphinx +backoff==2.2.1 + # via + # -r requirements/requirements.in + # posthog +beautifulsoup4==4.13.3 + # via -r requirements/requirements.in +blinker==1.9.0 + # via streamlit +build==1.2.2.post1 + # via pip-tools +cachetools==5.5.2 + # via streamlit +certifi==2025.1.31 + # via + # httpcore + # httpx + # requests +cffi==1.17.1 + # via + # sounddevice + # soundfile +cfgv==3.4.0 + # via pre-commit +charset-normalizer==3.4.1 + # via requests +click==8.1.8 + # via + # litellm + # nltk + # pip-tools + # streamlit + # typer +codespell==2.4.1 + # via -r requirements/requirements-dev.in +cogapp==3.4.1 + # via -r requirements/requirements-dev.in +configargparse==1.7 + # via -r requirements/requirements.in +contourpy==1.3.1 + # via matplotlib +cycler==0.12.1 + # via matplotlib +dataclasses-json==0.6.7 + # via llama-index-core +deprecated==1.2.18 + # via llama-index-core +diff-match-patch==20241021 + # via -r requirements/requirements.in +dill==0.3.9 + # via + # multiprocess + # pathos +dirtyjson==1.0.8 + # via llama-index-core +diskcache==5.6.3 + # via -r requirements/requirements.in +distlib==0.3.9 + # via virtualenv +distro==1.9.0 + # via + # openai + # posthog +docutils==0.21.2 + # via + # sphinx + # sphinx-rtd-theme +filelock==3.17.0 + # via + # huggingface-hub + # torch + # transformers + # virtualenv +filetype==1.2.0 + # via llama-index-core +flake8==7.1.2 + # via -r requirements/requirements.in +fonttools==4.56.0 + # via matplotlib +frozenlist==1.5.0 + # via + # aiohttp + # aiosignal +fsspec==2025.2.0 + # via + # huggingface-hub + # llama-index-core + # torch +gitdb==4.0.12 + # via gitpython +gitpython==3.1.44 + # via + # -r requirements/requirements.in + # streamlit +greenlet==3.0.3 + # via + # playwright + # sqlalchemy +grep-ast==0.6.1 + # via -r requirements/requirements.in +h11==0.14.0 + # via httpcore +httpcore==1.0.7 + # via httpx +httpx==0.28.1 + # via + # litellm + # llama-index-core + # openai +huggingface-hub[inference]==0.29.1 + # via + # llama-index-embeddings-huggingface + # sentence-transformers + # tokenizers + # transformers +identify==2.6.8 + # via pre-commit +idna==3.10 + # via + # anyio + # httpx + # requests + # yarl +imagesize==1.4.1 + # via sphinx +imgcat==0.6.0 + # via -r requirements/requirements-dev.in +importlib-metadata==7.2.1 + # via + # -r requirements/requirements.in + # litellm +importlib-resources==6.5.2 + # via -r requirements/requirements.in +iniconfig==2.0.0 + # via pytest +jinja2==3.1.5 + # via + # altair + # litellm + # pydeck + # sphinx + # torch +jiter==0.8.2 + # via openai +joblib==1.4.2 + # via + # nltk + # scikit-learn +json5==0.10.0 + # via -r requirements/requirements.in +jsonschema==4.23.0 + # via + # -r requirements/requirements.in + # altair + # litellm +jsonschema-specifications==2024.10.1 + # via jsonschema +kiwisolver==1.4.8 + # via matplotlib +litellm==1.61.16 + # via -r requirements/requirements.in +llama-index-core==0.12.20 + # via + # -r requirements/requirements-help.in + # llama-index-embeddings-huggingface +llama-index-embeddings-huggingface==0.5.2 + # via -r requirements/requirements-help.in +lox==0.12.0 + # via -r requirements/requirements-dev.in +markdown-it-py==3.0.0 + # via rich +markupsafe==3.0.2 + # via jinja2 +marshmallow==3.26.1 + # via dataclasses-json +matplotlib==3.10.0 + # via -r requirements/requirements-dev.in +mccabe==0.7.0 + # via flake8 +mdurl==0.1.2 + # via markdown-it-py +mixpanel==4.10.1 + # via -r requirements/requirements.in +monotonic==1.6 + # via posthog +mpmath==1.3.0 + # via sympy +multidict==6.1.0 + # via + # aiohttp + # yarl +multiprocess==0.70.17 + # via pathos +mypy-extensions==1.0.0 + # via typing-inspect +narwhals==1.28.0 + # via altair +nest-asyncio==1.6.0 + # via llama-index-core +networkx==3.2.1 + # via + # -r requirements/requirements.in + # llama-index-core + # torch +nltk==3.9.1 + # via llama-index-core +nodeenv==1.9.1 + # via pre-commit +numpy==1.26.4 + # via + # -r requirements/requirements.in + # contourpy + # llama-index-core + # matplotlib + # pandas + # pydeck + # scikit-learn + # scipy + # soundfile + # streamlit + # transformers +openai==1.64.0 + # via litellm +packaging==24.2 + # via + # -r requirements/requirements.in + # altair + # build + # huggingface-hub + # marshmallow + # matplotlib + # pytest + # sphinx + # streamlit + # transformers +pandas==2.2.3 + # via + # -r requirements/requirements-dev.in + # streamlit +pathos==0.3.3 + # via lox +pathspec==0.12.1 + # via + # -r requirements/requirements.in + # grep-ast +pexpect==4.9.0 + # via -r requirements/requirements.in +pillow==10.4.0 + # via + # -r requirements/requirements.in + # llama-index-core + # matplotlib + # sentence-transformers + # streamlit +pip-tools==7.4.1 + # via -r requirements/requirements-dev.in +platformdirs==4.3.6 + # via virtualenv +playwright==1.47.0 + # via -r requirements/requirements-playwright.in +pluggy==1.5.0 + # via pytest +posthog==3.16.0 + # via -r requirements/requirements.in +pox==0.3.5 + # via pathos +ppft==1.7.6.9 + # via pathos +pre-commit==4.1.0 + # via -r requirements/requirements-dev.in +prompt-toolkit==3.0.50 + # via -r requirements/requirements.in +propcache==0.3.0 + # via + # aiohttp + # yarl +protobuf==5.29.3 + # via streamlit +psutil==7.0.0 + # via -r requirements/requirements.in +ptyprocess==0.7.0 + # via pexpect +pyarrow==19.0.1 + # via streamlit +pycodestyle==2.12.1 + # via flake8 +pycparser==2.22 + # via cffi +pydantic==2.10.6 + # via + # litellm + # llama-index-core + # openai +pydantic-core==2.27.2 + # via pydantic +pydeck==0.9.1 + # via streamlit +pydub==0.25.1 + # via -r requirements/requirements.in +pyee==12.0.0 + # via playwright +pyflakes==3.2.0 + # via flake8 +pygments==2.19.1 + # via + # rich + # sphinx +pypandoc==1.15 + # via -r requirements/requirements.in +pyparsing==3.2.1 + # via matplotlib +pyperclip==1.9.0 + # via -r requirements/requirements.in +pyproject-hooks==1.2.0 + # via + # build + # pip-tools +pytest==8.3.4 + # via + # -r requirements/requirements-dev.in + # pytest-env +pytest-env==1.1.5 + # via -r requirements/requirements-dev.in +python-dateutil==2.9.0.post0 + # via + # matplotlib + # pandas + # posthog +python-dotenv==1.0.1 + # via litellm +pytz==2025.1 + # via pandas +pyyaml==6.0.2 + # via + # -r requirements/requirements.in + # huggingface-hub + # llama-index-core + # pre-commit + # transformers +referencing==0.36.2 + # via + # jsonschema + # jsonschema-specifications +regex==2024.11.6 + # via + # nltk + # tiktoken + # transformers +requests==2.32.3 + # via + # huggingface-hub + # llama-index-core + # mixpanel + # posthog + # sphinx + # streamlit + # tiktoken + # transformers +rich==13.9.4 + # via + # -r requirements/requirements.in + # streamlit + # typer +roman-numerals-py==3.1.0 + # via sphinx +rpds-py==0.23.1 + # via + # jsonschema + # referencing +safetensors==0.5.3 + # via transformers +scikit-learn==1.6.1 + # via sentence-transformers +scipy==1.13.1 + # via + # -r requirements/requirements.in + # scikit-learn + # sentence-transformers +semver==3.0.4 + # via -r requirements/requirements-dev.in +sentence-transformers==3.4.1 + # via llama-index-embeddings-huggingface +shellingham==1.5.4 + # via typer +six==1.17.0 + # via + # mixpanel + # posthog + # python-dateutil +smmap==5.0.2 + # via gitdb +sniffio==1.3.1 + # via + # anyio + # openai +snowballstemmer==2.2.0 + # via sphinx +socksio==1.0.0 + # via -r requirements/requirements.in +sounddevice==0.5.1 + # via -r requirements/requirements.in +soundfile==0.13.1 + # via -r requirements/requirements.in +soupsieve==2.6 + # via beautifulsoup4 +sphinx==8.2.1 + # via + # sphinx-rtd-theme + # sphinxcontrib-jquery +sphinx-rtd-theme==3.0.2 + # via lox +sphinxcontrib-applehelp==2.0.0 + # via sphinx +sphinxcontrib-devhelp==2.0.0 + # via sphinx +sphinxcontrib-htmlhelp==2.1.0 + # via sphinx +sphinxcontrib-jquery==4.1 + # via sphinx-rtd-theme +sphinxcontrib-jsmath==1.0.1 + # via sphinx +sphinxcontrib-qthelp==2.0.0 + # via sphinx +sphinxcontrib-serializinghtml==2.0.0 + # via sphinx +sqlalchemy[asyncio]==2.0.38 + # via + # llama-index-core + # sqlalchemy +streamlit==1.42.2 + # via -r requirements/requirements-browser.in +sympy==1.13.3 + # via torch +tenacity==9.0.0 + # via + # llama-index-core + # streamlit +threadpoolctl==3.5.0 + # via scikit-learn +tiktoken==0.9.0 + # via + # litellm + # llama-index-core +tokenizers==0.19.1 + # via + # litellm + # transformers +toml==0.10.2 + # via streamlit +torch==2.2.2 + # via sentence-transformers +tornado==6.4.2 + # via streamlit +tqdm==4.67.1 + # via + # huggingface-hub + # llama-index-core + # nltk + # openai + # sentence-transformers + # transformers +transformers==4.44.2 + # via sentence-transformers +tree-sitter==0.21.3 + # via + # -r requirements/requirements.in + # grep-ast + # tree-sitter-languages +tree-sitter-languages==1.10.2 + # via grep-ast +typer==0.15.1 + # via -r requirements/requirements-dev.in +typing-extensions==4.12.2 + # via + # altair + # anyio + # beautifulsoup4 + # huggingface-hub + # llama-index-core + # openai + # pydantic + # pydantic-core + # pyee + # referencing + # sqlalchemy + # streamlit + # torch + # typer + # typing-inspect +typing-inspect==0.9.0 + # via + # dataclasses-json + # llama-index-core +tzdata==2025.1 + # via pandas +urllib3==2.3.0 + # via + # mixpanel + # requests +virtualenv==20.29.2 + # via pre-commit +watchdog==4.0.2 + # via streamlit +watchfiles==1.0.4 + # via -r requirements/requirements.in +wcwidth==0.2.13 + # via prompt-toolkit +wheel==0.45.1 + # via pip-tools +wrapt==1.17.2 + # via + # deprecated + # llama-index-core +yarl==1.18.3 + # via aiohttp +zipp==3.21.0 + # via importlib-metadata + +# The following packages are considered to be unsafe in a requirements file: +pip==25.0.1 + # via + # -r requirements/requirements.in + # pip-tools +setuptools==75.8.1 + # via pip-tools diff --git a/requirements/requirements-browser.in b/requirements/requirements-browser.in index de1cabe58..12a470652 100644 --- a/requirements/requirements-browser.in +++ b/requirements/requirements-browser.in @@ -1,4 +1 @@ --c ../requirements.txt - streamlit -watchdog<5 # docker build fails: streamlit 1.38.0 depends on watchdog<5 diff --git a/requirements/requirements-browser.txt b/requirements/requirements-browser.txt index 7a2223d8f..b8a0de019 100644 --- a/requirements/requirements-browser.txt +++ b/requirements/requirements-browser.txt @@ -2,213 +2,178 @@ # This file is autogenerated by pip-compile with Python 3.12 # by the following command: # -# pip-compile --allow-unsafe --constraint=requirements.txt --constraint=requirements/requirements-dev.txt --constraint=requirements/requirements-help.txt --output-file=requirements/requirements-browser.txt requirements/requirements-browser.in +# pip-compile --allow-unsafe --constraint=requirements/common-constraints.txt --output-file=requirements/requirements-browser.txt requirements/requirements-browser.in # altair==5.5.0 - # via streamlit + # via + # -c requirements/common-constraints.txt + # streamlit attrs==25.1.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-help.txt + # -c requirements/common-constraints.txt # jsonschema # referencing blinker==1.9.0 - # via streamlit + # via + # -c requirements/common-constraints.txt + # streamlit cachetools==5.5.2 - # via streamlit + # via + # -c requirements/common-constraints.txt + # streamlit certifi==2025.1.31 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt - # -c requirements/requirements-help.txt + # -c requirements/common-constraints.txt # requests charset-normalizer==3.4.1 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt - # -c requirements/requirements-help.txt + # -c requirements/common-constraints.txt # requests click==8.1.8 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt - # -c requirements/requirements-help.txt + # -c requirements/common-constraints.txt # streamlit gitdb==4.0.12 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # gitpython gitpython==3.1.44 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # streamlit idna==3.10 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt - # -c requirements/requirements-help.txt + # -c requirements/common-constraints.txt # requests jinja2==3.1.5 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt - # -c requirements/requirements-help.txt + # -c requirements/common-constraints.txt # altair # pydeck jsonschema==4.23.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # altair jsonschema-specifications==2024.10.1 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # jsonschema markdown-it-py==3.0.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # rich markupsafe==3.0.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt - # -c requirements/requirements-help.txt + # -c requirements/common-constraints.txt # jinja2 mdurl==0.1.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # markdown-it-py narwhals==1.28.0 - # via altair + # via + # -c requirements/common-constraints.txt + # altair numpy==1.26.4 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt - # -c requirements/requirements-help.txt + # -c requirements/common-constraints.txt # pandas # pydeck # streamlit packaging==24.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt - # -c requirements/requirements-help.txt + # -c requirements/common-constraints.txt # altair # streamlit pandas==2.2.3 # via - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # streamlit pillow==10.4.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt - # -c requirements/requirements-help.txt + # -c requirements/common-constraints.txt # streamlit protobuf==5.29.3 - # via streamlit + # via + # -c requirements/common-constraints.txt + # streamlit pyarrow==19.0.1 - # via streamlit + # via + # -c requirements/common-constraints.txt + # streamlit pydeck==0.9.1 - # via streamlit + # via + # -c requirements/common-constraints.txt + # streamlit pygments==2.19.1 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # rich python-dateutil==2.9.0.post0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # pandas pytz==2025.1 # via - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # pandas referencing==0.36.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # jsonschema # jsonschema-specifications requests==2.32.3 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt - # -c requirements/requirements-help.txt + # -c requirements/common-constraints.txt # streamlit rich==13.9.4 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # streamlit rpds-py==0.23.1 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # jsonschema # referencing six==1.17.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # python-dateutil smmap==5.0.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # gitdb streamlit==1.42.2 - # via -r requirements/requirements-browser.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements-browser.in tenacity==9.0.0 # via - # -c requirements/requirements-help.txt + # -c requirements/common-constraints.txt # streamlit toml==0.10.2 - # via streamlit + # via + # -c requirements/common-constraints.txt + # streamlit tornado==6.4.2 - # via streamlit + # via + # -c requirements/common-constraints.txt + # streamlit typing-extensions==4.12.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt - # -c requirements/requirements-help.txt + # -c requirements/common-constraints.txt # altair # referencing # streamlit tzdata==2025.1 # via - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # pandas urllib3==2.3.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt - # -c requirements/requirements-help.txt + # -c requirements/common-constraints.txt # requests watchdog==4.0.2 - # via -r requirements/requirements-browser.in + # via + # -c requirements/common-constraints.txt + # streamlit diff --git a/requirements/requirements-dev.in b/requirements/requirements-dev.in index a9b6c2216..a06c1f062 100644 --- a/requirements/requirements-dev.in +++ b/requirements/requirements-dev.in @@ -1,7 +1,3 @@ --c ../requirements.txt -# -# pip-compile --output-file=requirements-dev.txt requirements-dev.in --upgrade -# pytest pytest-env pip-tools diff --git a/requirements/requirements-dev.txt b/requirements/requirements-dev.txt index f770aedfa..7c458f878 100644 --- a/requirements/requirements-dev.txt +++ b/requirements/requirements-dev.txt @@ -2,234 +2,312 @@ # This file is autogenerated by pip-compile with Python 3.12 # by the following command: # -# pip-compile --allow-unsafe --constraint=requirements.txt --output-file=requirements/requirements-dev.txt requirements/requirements-dev.in +# pip-compile --allow-unsafe --constraint=requirements/common-constraints.txt --output-file=requirements/requirements-dev.txt requirements/requirements-dev.in # alabaster==1.0.0 - # via sphinx + # via + # -c requirements/common-constraints.txt + # sphinx babel==2.17.0 - # via sphinx + # via + # -c requirements/common-constraints.txt + # sphinx build==1.2.2.post1 - # via pip-tools + # via + # -c requirements/common-constraints.txt + # pip-tools certifi==2025.1.31 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # requests cfgv==3.4.0 - # via pre-commit + # via + # -c requirements/common-constraints.txt + # pre-commit charset-normalizer==3.4.1 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # requests click==8.1.8 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # pip-tools # typer codespell==2.4.1 - # via -r requirements/requirements-dev.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements-dev.in cogapp==3.4.1 - # via -r requirements/requirements-dev.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements-dev.in contourpy==1.3.1 - # via matplotlib + # via + # -c requirements/common-constraints.txt + # matplotlib cycler==0.12.1 - # via matplotlib + # via + # -c requirements/common-constraints.txt + # matplotlib dill==0.3.9 # via + # -c requirements/common-constraints.txt # multiprocess # pathos distlib==0.3.9 - # via virtualenv + # via + # -c requirements/common-constraints.txt + # virtualenv docutils==0.21.2 # via + # -c requirements/common-constraints.txt # sphinx # sphinx-rtd-theme filelock==3.17.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # virtualenv fonttools==4.56.0 - # via matplotlib + # via + # -c requirements/common-constraints.txt + # matplotlib identify==2.6.8 - # via pre-commit + # via + # -c requirements/common-constraints.txt + # pre-commit idna==3.10 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # requests imagesize==1.4.1 - # via sphinx + # via + # -c requirements/common-constraints.txt + # sphinx imgcat==0.6.0 - # via -r requirements/requirements-dev.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements-dev.in iniconfig==2.0.0 - # via pytest + # via + # -c requirements/common-constraints.txt + # pytest jinja2==3.1.5 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # sphinx kiwisolver==1.4.8 - # via matplotlib + # via + # -c requirements/common-constraints.txt + # matplotlib lox==0.12.0 - # via -r requirements/requirements-dev.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements-dev.in markdown-it-py==3.0.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # rich markupsafe==3.0.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # jinja2 matplotlib==3.10.0 - # via -r requirements/requirements-dev.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements-dev.in mdurl==0.1.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # markdown-it-py multiprocess==0.70.17 - # via pathos + # via + # -c requirements/common-constraints.txt + # pathos nodeenv==1.9.1 - # via pre-commit + # via + # -c requirements/common-constraints.txt + # pre-commit numpy==1.26.4 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # contourpy # matplotlib # pandas packaging==24.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # build # matplotlib # pytest # sphinx pandas==2.2.3 - # via -r requirements/requirements-dev.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements-dev.in pathos==0.3.3 - # via lox + # via + # -c requirements/common-constraints.txt + # lox pillow==10.4.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # matplotlib pip-tools==7.4.1 - # via -r requirements/requirements-dev.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements-dev.in platformdirs==4.3.6 - # via virtualenv + # via + # -c requirements/common-constraints.txt + # virtualenv pluggy==1.5.0 - # via pytest + # via + # -c requirements/common-constraints.txt + # pytest pox==0.3.5 - # via pathos + # via + # -c requirements/common-constraints.txt + # pathos ppft==1.7.6.9 - # via pathos + # via + # -c requirements/common-constraints.txt + # pathos pre-commit==4.1.0 - # via -r requirements/requirements-dev.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements-dev.in pygments==2.19.1 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # rich # sphinx pyparsing==3.2.1 - # via matplotlib + # via + # -c requirements/common-constraints.txt + # matplotlib pyproject-hooks==1.2.0 # via + # -c requirements/common-constraints.txt # build # pip-tools pytest==8.3.4 # via + # -c requirements/common-constraints.txt # -r requirements/requirements-dev.in # pytest-env pytest-env==1.1.5 - # via -r requirements/requirements-dev.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements-dev.in python-dateutil==2.9.0.post0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # matplotlib # pandas pytz==2025.1 - # via pandas + # via + # -c requirements/common-constraints.txt + # pandas pyyaml==6.0.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # pre-commit requests==2.32.3 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # sphinx rich==13.9.4 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # typer roman-numerals-py==3.1.0 - # via sphinx + # via + # -c requirements/common-constraints.txt + # sphinx semver==3.0.4 - # via -r requirements/requirements-dev.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements-dev.in shellingham==1.5.4 - # via typer + # via + # -c requirements/common-constraints.txt + # typer six==1.17.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # python-dateutil snowballstemmer==2.2.0 - # via sphinx + # via + # -c requirements/common-constraints.txt + # sphinx sphinx==8.2.1 # via + # -c requirements/common-constraints.txt # sphinx-rtd-theme # sphinxcontrib-jquery sphinx-rtd-theme==3.0.2 - # via lox + # via + # -c requirements/common-constraints.txt + # lox sphinxcontrib-applehelp==2.0.0 - # via sphinx + # via + # -c requirements/common-constraints.txt + # sphinx sphinxcontrib-devhelp==2.0.0 - # via sphinx + # via + # -c requirements/common-constraints.txt + # sphinx sphinxcontrib-htmlhelp==2.1.0 - # via sphinx + # via + # -c requirements/common-constraints.txt + # sphinx sphinxcontrib-jquery==4.1 - # via sphinx-rtd-theme + # via + # -c requirements/common-constraints.txt + # sphinx-rtd-theme sphinxcontrib-jsmath==1.0.1 - # via sphinx + # via + # -c requirements/common-constraints.txt + # sphinx sphinxcontrib-qthelp==2.0.0 - # via sphinx + # via + # -c requirements/common-constraints.txt + # sphinx sphinxcontrib-serializinghtml==2.0.0 - # via sphinx + # via + # -c requirements/common-constraints.txt + # sphinx typer==0.15.1 - # via -r requirements/requirements-dev.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements-dev.in typing-extensions==4.12.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # typer tzdata==2025.1 - # via pandas + # via + # -c requirements/common-constraints.txt + # pandas urllib3==2.3.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # requests virtualenv==20.29.2 - # via pre-commit + # via + # -c requirements/common-constraints.txt + # pre-commit wheel==0.45.1 - # via pip-tools + # via + # -c requirements/common-constraints.txt + # pip-tools # The following packages are considered to be unsafe in a requirements file: pip==25.0.1 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # pip-tools setuptools==75.8.1 - # via pip-tools + # via + # -c requirements/common-constraints.txt + # pip-tools diff --git a/requirements/requirements-help.in b/requirements/requirements-help.in index c865a6a3f..4d1d2c403 100644 --- a/requirements/requirements-help.in +++ b/requirements/requirements-help.in @@ -1,10 +1,2 @@ --c ../requirements.txt -# -# pip-compile --output-file=requirements-hf.txt requirements-hf.in --upgrade -# - llama-index-core llama-index-embeddings-huggingface - -# requirement-help and requirements-playwright choose different versions -greenlet==3.0.3 diff --git a/requirements/requirements-help.txt b/requirements/requirements-help.txt index 9b138aed2..dd924618c 100644 --- a/requirements/requirements-help.txt +++ b/requirements/requirements-help.txt @@ -2,287 +2,277 @@ # This file is autogenerated by pip-compile with Python 3.12 # by the following command: # -# pip-compile --allow-unsafe --constraint=requirements.txt --constraint=requirements/requirements-dev.txt --output-file=requirements/requirements-help.txt requirements/requirements-help.in +# pip-compile --allow-unsafe --constraint=requirements/common-constraints.txt --output-file=requirements/requirements-help.txt requirements/requirements-help.in # aiohappyeyeballs==2.4.6 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # aiohttp aiohttp==3.11.13 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # huggingface-hub # llama-index-core aiosignal==1.3.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # aiohttp annotated-types==0.7.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # pydantic anyio==4.8.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # httpx attrs==25.1.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # aiohttp certifi==2025.1.31 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # httpcore # httpx # requests charset-normalizer==3.4.1 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # requests click==8.1.8 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # nltk dataclasses-json==0.6.7 - # via llama-index-core + # via + # -c requirements/common-constraints.txt + # llama-index-core deprecated==1.2.18 - # via llama-index-core + # via + # -c requirements/common-constraints.txt + # llama-index-core dirtyjson==1.0.8 - # via llama-index-core + # via + # -c requirements/common-constraints.txt + # llama-index-core filelock==3.17.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # huggingface-hub # torch # transformers filetype==1.2.0 - # via llama-index-core + # via + # -c requirements/common-constraints.txt + # llama-index-core frozenlist==1.5.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # aiohttp # aiosignal fsspec==2025.2.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # huggingface-hub # llama-index-core # torch greenlet==3.0.3 # via - # -r requirements/requirements-help.in + # -c requirements/common-constraints.txt # sqlalchemy h11==0.14.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # httpcore httpcore==1.0.7 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # httpx httpx==0.28.1 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # llama-index-core huggingface-hub[inference]==0.29.1 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # llama-index-embeddings-huggingface # sentence-transformers # tokenizers # transformers idna==3.10 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # anyio # httpx # requests # yarl jinja2==3.1.5 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # torch joblib==1.4.2 # via + # -c requirements/common-constraints.txt # nltk # scikit-learn llama-index-core==0.12.20 # via + # -c requirements/common-constraints.txt # -r requirements/requirements-help.in # llama-index-embeddings-huggingface llama-index-embeddings-huggingface==0.5.2 - # via -r requirements/requirements-help.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements-help.in markupsafe==3.0.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # jinja2 marshmallow==3.26.1 - # via dataclasses-json + # via + # -c requirements/common-constraints.txt + # dataclasses-json mpmath==1.3.0 - # via sympy + # via + # -c requirements/common-constraints.txt + # sympy multidict==6.1.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # aiohttp # yarl mypy-extensions==1.0.0 - # via typing-inspect + # via + # -c requirements/common-constraints.txt + # typing-inspect nest-asyncio==1.6.0 - # via llama-index-core + # via + # -c requirements/common-constraints.txt + # llama-index-core networkx==3.2.1 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # llama-index-core # torch nltk==3.9.1 - # via llama-index-core + # via + # -c requirements/common-constraints.txt + # llama-index-core numpy==1.26.4 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # llama-index-core # scikit-learn # scipy # transformers packaging==24.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # huggingface-hub # marshmallow # transformers pillow==10.4.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # llama-index-core # sentence-transformers propcache==0.3.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # aiohttp # yarl pydantic==2.10.6 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # llama-index-core pydantic-core==2.27.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # pydantic pyyaml==6.0.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # huggingface-hub # llama-index-core # transformers regex==2024.11.6 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # nltk # tiktoken # transformers requests==2.32.3 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # huggingface-hub # llama-index-core # tiktoken # transformers safetensors==0.5.3 - # via transformers + # via + # -c requirements/common-constraints.txt + # transformers scikit-learn==1.6.1 - # via sentence-transformers + # via + # -c requirements/common-constraints.txt + # sentence-transformers scipy==1.13.1 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # scikit-learn # sentence-transformers sentence-transformers==3.4.1 - # via llama-index-embeddings-huggingface + # via + # -c requirements/common-constraints.txt + # llama-index-embeddings-huggingface sniffio==1.3.1 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # anyio sqlalchemy[asyncio]==2.0.38 # via + # -c requirements/common-constraints.txt # llama-index-core # sqlalchemy sympy==1.13.3 - # via torch + # via + # -c requirements/common-constraints.txt + # torch tenacity==9.0.0 - # via llama-index-core + # via + # -c requirements/common-constraints.txt + # llama-index-core threadpoolctl==3.5.0 - # via scikit-learn + # via + # -c requirements/common-constraints.txt + # scikit-learn tiktoken==0.9.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # llama-index-core tokenizers==0.19.1 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # transformers torch==2.2.2 - # via sentence-transformers + # via + # -c requirements/common-constraints.txt + # sentence-transformers tqdm==4.67.1 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # huggingface-hub # llama-index-core # nltk # sentence-transformers # transformers transformers==4.44.2 - # via sentence-transformers + # via + # -c requirements/common-constraints.txt + # sentence-transformers typing-extensions==4.12.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # anyio # huggingface-hub # llama-index-core @@ -293,20 +283,19 @@ typing-extensions==4.12.2 # typing-inspect typing-inspect==0.9.0 # via + # -c requirements/common-constraints.txt # dataclasses-json # llama-index-core urllib3==2.3.0 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-dev.txt + # -c requirements/common-constraints.txt # requests wrapt==1.17.2 # via + # -c requirements/common-constraints.txt # deprecated # llama-index-core yarl==1.18.3 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt + # -c requirements/common-constraints.txt # aiohttp diff --git a/requirements/requirements-playwright.in b/requirements/requirements-playwright.in index fd88b61e2..508a5f469 100644 --- a/requirements/requirements-playwright.in +++ b/requirements/requirements-playwright.in @@ -1,6 +1 @@ --c ../requirements.txt - playwright - -# requirement-help and requirements-playwright choose different versions -greenlet==3.0.3 diff --git a/requirements/requirements-playwright.txt b/requirements/requirements-playwright.txt index f84ec4f68..4a5eafb5f 100644 --- a/requirements/requirements-playwright.txt +++ b/requirements/requirements-playwright.txt @@ -2,22 +2,21 @@ # This file is autogenerated by pip-compile with Python 3.12 # by the following command: # -# pip-compile --allow-unsafe --constraint=requirements.txt --constraint=requirements/requirements-browser.txt --constraint=requirements/requirements-dev.txt --constraint=requirements/requirements-help.txt --output-file=requirements/requirements-playwright.txt requirements/requirements-playwright.in +# pip-compile --allow-unsafe --constraint=requirements/common-constraints.txt --output-file=requirements/requirements-playwright.txt requirements/requirements-playwright.in # greenlet==3.0.3 # via - # -c requirements/requirements-help.txt - # -r requirements/requirements-playwright.in + # -c requirements/common-constraints.txt # playwright playwright==1.47.0 - # via -r requirements/requirements-playwright.in + # via + # -c requirements/common-constraints.txt + # -r requirements/requirements-playwright.in pyee==12.0.0 - # via playwright + # via + # -c requirements/common-constraints.txt + # playwright typing-extensions==4.12.2 # via - # -c /Users/gauthier/Projects/aider/requirements.txt - # -c requirements.txt - # -c requirements/requirements-browser.txt - # -c requirements/requirements-dev.txt - # -c requirements/requirements-help.txt + # -c requirements/common-constraints.txt # pyee diff --git a/requirements/requirements.in b/requirements/requirements.in index f20b07103..dfbf21e05 100644 --- a/requirements/requirements.in +++ b/requirements/requirements.in @@ -1,7 +1,3 @@ -# -# pip-compile requirements.in --upgrade -# - pydub configargparse GitPython @@ -56,9 +52,5 @@ importlib-metadata<8.0.0 # Because sentence-transformers doesn't like >=2 numpy<2 -# Going past this makes dependencies unresolvable -# Seems to be caused by sentence-transformers -tokenizers==0.19.1 - # streamlit 1.39.0 depends on this, as far back as 1.22 which is ancient and doesn't have chat ui Pillow<11 diff --git a/scripts/pip-compile.sh b/scripts/pip-compile.sh index 822cb819f..423a7d21f 100755 --- a/scripts/pip-compile.sh +++ b/scripts/pip-compile.sh @@ -3,25 +3,31 @@ # exit when any command fails set -e -# First compile the base requirements +# First compile the common constraints of the full requirement suite +# to make sure that all versions are mutually consistent across files pip-compile \ --allow-unsafe \ + --output-file=requirements/common-constraints.txt \ requirements/requirements.in \ - --output-file=requirements.txt \ + requirements/requirements-*.in \ $1 -# Then compile each additional requirements file in sequence +# Compile the base requirements +pip-compile \ + --allow-unsafe \ + --constraint=requirements/common-constraints.txt \ + --output-file=requirements.txt \ + requirements/requirements.in \ + $1 + +# Compile additional requirements files SUFFIXES=(dev help browser playwright) -CONSTRAINTS="--constraint=requirements.txt" for SUFFIX in "${SUFFIXES[@]}"; do pip-compile \ --allow-unsafe \ - requirements/requirements-${SUFFIX}.in \ + --constraint=requirements/common-constraints.txt \ --output-file=requirements/requirements-${SUFFIX}.txt \ - ${CONSTRAINTS} \ + requirements/requirements-${SUFFIX}.in \ $1 - - # Add this file as a constraint for the next iteration - CONSTRAINTS+=" --constraint=requirements/requirements-${SUFFIX}.txt" done