fix: let fewer conflicts occur across requirements

**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.
This commit is contained in:
Claudia Pellegrino 2025-03-02 01:35:48 +01:00
parent a94c4b4ce4
commit 31c4198cee
No known key found for this signature in database
GPG key ID: 7AA67DE7B73139CE
12 changed files with 1133 additions and 412 deletions

View file

@ -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

View file

@ -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

View file

@ -1,4 +1 @@
-c ../requirements.txt
streamlit
watchdog<5 # docker build fails: streamlit 1.38.0 depends on watchdog<5

View file

@ -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

View file

@ -1,7 +1,3 @@
-c ../requirements.txt
#
# pip-compile --output-file=requirements-dev.txt requirements-dev.in --upgrade
#
pytest
pytest-env
pip-tools

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,6 +1 @@
-c ../requirements.txt
playwright
# requirement-help and requirements-playwright choose different versions
greenlet==3.0.3

View file

@ -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

View file

@ -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

View file

@ -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