Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pin dependencies #61

Merged
merged 1 commit into from
Oct 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions requirements.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
dune-client
moralis
pandas
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At the moment this actually removes the version pinning for these packages:

requests==2.31.0
web3==7.0.0
pandas==2.2.1
SQLAlchemy==2.0.28
psycopg2==2.9.9
python-dotenv==1.0.0

If we want to keep them pinned we should add that here. For other packages I think it might be worth pinning major versions as well just because it can't hurt. So for example we could set something like dune-client>=1.7.5,<2.0.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are any of those restrictions necessary at the moment?

I would have expected that one uses as few restrictions as possible in requirements.in. Any recompiling will require some form of testing of the new dependencies anyways. At that stage one can add restrictions or update the code.

Restricting on major versions sounds OK. I would probably only do it after we see an issue with some version.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bram-vdberg I actually see all these packages you listed fully pinned down in this PR, which i guess is the expected behavior as they are listed in the requirements.in file.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@harisang I meant that they're pinned in the requirements.txt file, but not in the requirements.in file. This means that recompiling the requirements.in could upgrade these packages. Another way to do this is to pin selected packages in the requirements.in, that means that we can recompile and upgrade downstream dependencies without upgrading these packages.

I think Felix is right that we don't need to do that unless necessary.

pandas-stubs
psycopg2
python-dotenv
requests
types-psycopg2
types-requests
SQLAlchemy
web3
black
mypy
pylint
pytest
240 changes: 227 additions & 13 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,17 +1,231 @@
requests==2.31.0
web3==7.0.0
pandas==2.2.1
SQLAlchemy==2.0.28
psycopg2==2.9.9
python-dotenv==1.0.0
#
# This file is autogenerated by pip-compile with Python 3.12
# by the following command:
#
# pip-compile requirements.in
#
aiohappyeyeballs==2.4.0
# via aiohttp
aiohttp==3.10.5
# via
# dune-client
# web3
aiosignal==1.3.1
# via aiohttp
annotated-types==0.7.0
# via pydantic
astroid==3.2.4
# via pylint
attrs==24.2.0
# via aiohttp
bitarray==2.9.2
# via eth-account
black==23.3.0
# via -r requirements.in
certifi==2024.8.30
# via
# moralis
# requests
charset-normalizer==3.3.2
# via requests
ckzg==2.0.1
# via eth-account
click==8.1.7
# via black
cytoolz==0.12.3
# via eth-utils
dataclasses-json==0.6.7
# via dune-client
deprecated==1.2.14
# via dune-client
dill==0.3.8
# via pylint
dune-client==1.7.5
# via -r requirements.in
eth-abi==5.1.0
# via
# eth-account
# web3
eth-account==0.13.3
# via web3
eth-hash[pycryptodome]==0.7.0
# via
# eth-utils
# web3
eth-keyfile==0.8.1
# via eth-account
eth-keys==0.5.1
# via
# eth-account
# eth-keyfile
eth-rlp==2.1.0
# via eth-account
eth-typing==5.0.0
# via
# eth-abi
# eth-keys
# eth-utils
# web3
eth-utils==5.0.0
# via
# eth-abi
# eth-account
# eth-keyfile
# eth-keys
# eth-rlp
# rlp
# web3
frozendict==2.3.10
# via moralis
frozenlist==1.4.1
# via
# aiohttp
# aiosignal
greenlet==3.1.1
# via sqlalchemy
hexbytes==1.2.1
# via
# eth-account
# eth-rlp
# eth-utils
# web3
idna==3.10
# via
# requests
# yarl
iniconfig==2.0.0
# via pytest
isort==5.13.2
# via pylint
marshmallow==3.22.0
# via dataclasses-json
mccabe==0.7.0
# via pylint
moralis==0.1.49
# via -r requirements.in
multidict==6.1.0
# via
# aiohttp
# yarl
mypy==1.4.1
# via -r requirements.in
mypy-extensions==1.0.0
# via
# black
# mypy
# typing-inspect
ndjson==0.3.1
# via dune-client
numpy==1.26.4
# via
# pandas
# pandas-stubs
packaging==24.1
# via
# black
# marshmallow
# pytest
pandas==2.2.1
# via -r requirements.in
pandas-stubs==2.2.2.240909
# via -r requirements.in
parsimonious==0.10.0
# via eth-abi
pathspec==0.12.1
# via black
platformdirs==4.3.6
# via
# black
# pylint
pluggy==1.5.0
# via pytest
psycopg2==2.9.9
# via -r requirements.in
pycryptodome==3.20.0
# via
# eth-hash
# eth-keyfile
pydantic==2.9.2
# via
# eth-account
# web3
pydantic-core==2.23.4
# via pydantic
pylint==3.2.5
# via -r requirements.in
pytest==7.4.0
setuptools
pandas-stubs
types-psycopg2
types-requests
moralis
dune-client
pytest
# via -r requirements.in
python-dateutil==2.9.0.post0
# via
# dune-client
# moralis
# pandas
python-dotenv==1.0.0
# via -r requirements.in
pytz==2024.2
# via pandas
pyunormalize==16.0.0
# via web3
regex==2024.9.11
# via parsimonious
requests==2.31.0
# via
# -r requirements.in
# dune-client
# web3
rlp==4.0.1
# via
# eth-account
# eth-rlp
six==1.16.0
# via python-dateutil
sqlalchemy==2.0.28
# via -r requirements.in
tomlkit==0.13.2
# via pylint
toolz==0.12.1
# via cytoolz
types-deprecated==1.2.9.20240311
# via dune-client
types-psycopg2==2.9.21.20240819
# via -r requirements.in
types-python-dateutil==2.9.0.20240906
# via dune-client
types-pytz==2024.2.0.20240913
# via pandas-stubs
types-pyyaml==6.0.12.20240917
# via dune-client
types-requests==2.32.0.20240914
# via
# -r requirements.in
# dune-client
# web3
types-setuptools==75.1.0.20240917
# via dune-client
typing-extensions==4.12.2
# via
# eth-typing
# moralis
# mypy
# pydantic
# pydantic-core
# sqlalchemy
# typing-inspect
# web3
typing-inspect==0.9.0
# via dataclasses-json
tzdata==2024.1
# via pandas
urllib3==2.2.3
# via
# moralis
# requests
# types-requests
web3==7.0.0
# via -r requirements.in
websockets==13.1
# via web3
wrapt==1.16.0
# via deprecated
yarl==1.11.1
# via aiohttp
Loading