-
Notifications
You must be signed in to change notification settings - Fork 4
/
requirements.txt
210 lines (204 loc) · 5.47 KB
/
requirements.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
## How to set up a Python runtime environment for the Whole Cell Model.
## (See docs/create-pyenv.md for more details, esp. for Sherlock.)
## (See docs/dev-tools.md for prerequisites such as installing command line
## tools, additional SDK headers, and add pyenv init to your shell.)
#
## Install these packages using your local package manager such as homebrew on macOS:
# brew install pyenv pyenv-virtualenv pyenv-virtualenvwrapper
# brew install glpk openssl readline swig suite-sparse xz
#
## Whole Cell Model requires OpenBLAS 0.3.7+ or equivalent. Installing numpy and
## scipy binary wheels now embed a recent enough OpenBLAS release by default.
##
## If OpenBLAS uses multiple threads, it will produce slightly different results
## and usually runs significantly slower, esp. when called from multiple
## processes. See wholecell/tests/utils/test_blas.py .
## To fix that, set the environment variable:
# export OPENBLAS_NUM_THREADS=1
#
## Install the required version of Python via pyenv, and remember to enable it as
## a shared library:
# PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.11.3
#
## Create the "wcEcoli3" python virtual environment based on that Python version,
## and select it for your project directory:
# cd ~/dev/wcEcoli
# pyenv virtualenv 3.11.3 wcEcoli3 && pyenv local wcEcoli3
#
## Upgrade this virtual environment's pip installer:
# pip install --upgrade pip
#
## Install numpy (if it's the first time) then all the packages listed in this file (see
## docs/create-pyenv.md about whether to create a `~/.numpy-site.cfg` file and add
## `--no-binary numpy` to these `pip install` steps):
## [When updating the numpy version here also update it below, in Dockerfile, and in docs/*.]
# pip install numpy==1.26.3 # or add: --no-binary numpy
# pip install --upgrade -r requirements.txt && pyenv rehash
#
## Optionally, do some quick checks:
# python -c "import numpy as np; np.show_config()"
# runscripts/debug/numpy_benchmark.py
# python -c "import scipy; scipy.__config__.show()"
# python -c "import aesara; print(aesara.config.blas.ldflags)"
# python runscripts/debug/summarize_environment.py
# OPENBLAS_NUM_THREADS=1 python -m wholecell.tests.utils.test_library_performance
#
## Build the Cython code:
# make clean compile
# Installers
pip>=23.1
setuptools==73.0.1 # setuptools>=74.0.0 breaks aesara (via distutils changes?)
virtualenv>=20.21.0
virtualenv-clone>=0.5.7
virtualenvwrapper>=4.8.4
wheel>=0.40.0
# Direct dependendencies.
#
# NOTE: *** When updating the numpy==______ version, also update
# cloud/docker/runtime/Dockerfile and the instructions. ***
#
# bokeh==1.4.0 is the last version compatible with Python 2. Now irrelevant.
#
# FireWorks requires pymongo.
# dnspython enables pymongo to access server clusters (mongodb+srv:// URIs).
# pymongo[ocsp] adds dependencies for Sherlock to access Atlas server clusters.
# pytest-cov is for `pytest --cov`.
numpy==1.26.3
scipy==1.11.4
aesara==2.9.3
biopython==1.81
bokeh==3.1.1
borealis-fireworks==0.12.0
cvxpy==1.3.2
Cython==0.29.35
dash==2.9.3
dnspython==2.3.0
Equation==1.2.1
FireWorks==2.0.3
future==0.18.3
ipdb==0.13.13
ipython==8.13.2
line-profiler==4.0.3
numba==0.58.1
matplotlib==3.7.1
mock==5.0.2
mypy==1.3.0
pandas==2.0.1
Pillow==10.1.0
plotly==5.14.1
pymongo[ocsp]==4.3.3
pytest==7.3.1
pytest-cov==4.1.0
PyYAML==6.0.1 # not compatible with Cython 3 until they replace distutils use
requests==2.29.0 # update to 2.30 when docker is ready for urllib3 2.0
ruamel.yaml==0.17.26
stochastic-arrow==1.0.0
swiglpk==5.0.8
sympy==1.12
Unum==4.2.1
## Added by `mypy --install-types`:
types-mock==5.0.0.6
types-PyYAML==6.0.12.9
types-requests==2.30.0.0
types-urllib3==1.26.25.13
## Added by pymongo[ocsp]:
attrs==23.1.0
cffi==1.15.1
cryptography==40.0.2
pycparser==2.21
pyOpenSSL==23.1.1
service-identity==21.1.0
## Added by pip freeze:
appnope==0.1.3
asttokens==2.2.1
backcall==0.2.0
blinker==1.6.2
cachetools==5.3.0
certifi==2023.5.7
charset-normalizer==3.1.0
click==8.1.3
cons==0.4.5
contourpy==1.0.7
coverage==7.3.2
cycler==0.11.0
dash-core-components==2.0.0
dash-html-components==2.0.0
dash-table==5.0.0
decorator==5.1.1
distlib==0.3.6
docker==6.1.2
ecos==2.0.12
etuples==0.3.8
executing==1.2.0
filelock==3.12.0
Flask==2.3.2
flask-paginate==2022.1.8
fonttools==4.39.4
google-api-core==2.11.0
google-auth==2.18.0
google-cloud-appengine-logging==1.3.0
google-cloud-audit-log==0.2.5
google-cloud-core==2.3.2
google-cloud-logging==3.5.0
google-cloud-storage==2.9.0
google-crc32c==1.5.0
google-resumable-media==2.5.0
googleapis-common-protos==1.59.0
grpc-google-iam-v1==0.12.6
grpcio==1.54.2
grpcio-status==1.54.2
gunicorn==20.1.0
idna==3.4
iniconfig==2.0.0
itsdangerous==2.1.2
jedi==0.18.2
Jinja2==3.1.2
kiwisolver==1.4.4
llvmlite==0.41.1
logical-unification==0.4.6
MarkupSafe==2.1.2
matplotlib-inline==0.1.6
miniKanren==1.0.3
monty==2023.5.8
mpmath==1.3.0
multipledispatch==0.6.0
mypy-extensions==1.0.0
osqp==0.6.2.post9
packaging==23.1
parso==0.8.3
pbr==5.11.1
pexpect==4.8.0
pickleshare==0.7.5
platformdirs==3.5.1
pluggy==1.0.0
prompt-toolkit==3.0.38
proto-plus==1.22.2
protobuf==4.23.0
ptyprocess==0.7.0
pure-eval==0.2.2
pyasn1==0.5.0
pyasn1-modules==0.3.0
Pygments==2.15.1
pyparsing==3.0.9
python-dateutil==2.8.2
pytz==2023.3
qdldl==0.1.7
rsa==4.9
ruamel.yaml.clib==0.2.7
scs==3.2.3
six==1.16.0
stack-data==0.6.2
stevedore==5.0.0
tabulate==0.9.0
tenacity==8.2.2
toolz==0.12.0
tornado==6.3.2
tqdm==4.65.0
traitlets==5.9.0
typing_extensions==4.5.0
tzdata==2023.3
urllib3<2
wcwidth==0.2.6
websocket-client==1.5.1
Werkzeug==2.3.4
xyzservices==2023.2.0