Reputation: 375
Like many others, I got myself into hot waters alternating between pip, conda, and even brew installs. I'm finally running into issues with a package that just won't run correctly after days of troubleshooting: dask.
I'm trying to uninstaall the dask package out for a fresh start, then reinstall. I ran pip uninstall dask
first, and my plan was to then run conda uninstall dask
, but the conda uninstall seems to want to take everything but the kitchen sink with it. Below is output if I begin to run conda uninstall dask
(but decline conda's offer to proceed).
Why does conda want to remove 120+ packages just to remove dask? Can I ask conda to only remove dask, so I can then reinstall it?
$ conda uninstall dask
output:
Collecting package metadata (repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /Users/username/anaconda3
removed specs:
- dask
The following packages will be downloaded:
package | build
---------------------------|-----------------
sqlite-3.33.0 | hffcf06c_0 2.5 MB
------------------------------------------------------------
Total: 2.5 MB
The following NEW packages will be INSTALLED:
anyio pkgs/main/osx-64::anyio-2.2.0-py37hecd8cb5_1
argcomplete pkgs/main/noarch::argcomplete-1.12.3-pyhd3eb1b0_0
argon2-cffi pkgs/main/osx-64::argon2-cffi-20.1.0-py37h9ed2024_1
async_generator pkgs/main/osx-64::async_generator-1.10-py37h28b3542_0
brotli pkgs/main/osx-64::brotli-1.0.9-hb1e8313_2
brotlipy pkgs/main/osx-64::brotlipy-0.7.0-py37h9ed2024_1003
charset-normalizer pkgs/main/noarch::charset-normalizer-2.0.4-pyhd3eb1b0_0
debugpy pkgs/main/osx-64::debugpy-1.5.1-py37he9d5cce_0
fonttools pkgs/main/noarch::fonttools-4.25.0-pyhd3eb1b0_0
fsspec pkgs/main/noarch::fsspec-2022.1.0-pyhd3eb1b0_0
giflib pkgs/main/osx-64::giflib-5.2.1-haf1e3a3_0
json5 pkgs/main/noarch::json5-0.9.6-pyhd3eb1b0_0
jupyter_server pkgs/main/osx-64::jupyter_server-1.4.1-py37hecd8cb5_0
jupyterlab_pygmen~ pkgs/main/noarch::jupyterlab_pygments-0.1.2-py_0
jupyterlab_widgets pkgs/main/noarch::jupyterlab_widgets-1.0.0-pyhd3eb1b0_1
lcms2 pkgs/main/osx-64::lcms2-2.12-hf1fd2bf_0
libwebp pkgs/main/osx-64::libwebp-1.2.0-hacca55c_0
libwebp-base pkgs/main/osx-64::libwebp-base-1.2.0-h9ed2024_0
matplotlib-inline pkgs/main/noarch::matplotlib-inline-0.1.2-pyhd3eb1b0_2
munkres pkgs/main/noarch::munkres-1.1.4-py_0
nbclassic pkgs/main/noarch::nbclassic-0.2.6-pyhd3eb1b0_0
nbclient pkgs/main/noarch::nbclient-0.5.3-pyhd3eb1b0_0
nest-asyncio pkgs/main/noarch::nest-asyncio-1.5.1-pyhd3eb1b0_0
prompt-toolkit pkgs/main/noarch::prompt-toolkit-3.0.20-pyhd3eb1b0_0
sniffio pkgs/main/osx-64::sniffio-1.2.0-py37hecd8cb5_1
The following packages will be REMOVED:
_anaconda_depends-2019.03-py37_0
alabaster-0.7.12-py37_0
anaconda-custom-py37_1
anaconda-project-0.8.2-py37_0
appscript-1.1.0-py37h1de35cc_0
asn1crypto-0.24.0-py37_0
astroid-2.2.5-py37_0
astropy-3.1.2-py37h1de35cc_0
atomicwrites-1.3.0-py37_1
backports-1.0-py37_1
backports.os-0.1.1-py37_0
backports.shutil_get_terminal_size-1.0.0-py37_2
bitarray-0.8.3-py37h1de35cc_0
bkcharts-0.2-py37_0
blosc-1.15.0-hd9629dc_0
bokeh-1.0.4-py37_0
boto-2.49.0-py37_0
colorama-0.4.1-py37_0
contextlib2-0.5.5-py37_0
curl-7.64.0-ha441bb4_2
cython-0.29.6-py37h0a44026_0
dask-1.1.4-py37_1
dbus-1.13.6-h90a0687_0
docutils-0.14-py37_0
et_xmlfile-1.0.1-py37_0
expat-2.2.6-h0a44026_0
fastcache-1.0.2-py37h1de35cc_2
flask-1.0.2-py37_1
get_terminal_size-1.0.0-h7520d66_0
gettext-0.19.8.1-h15daf44_3
gevent-1.4.0-py37h1de35cc_0
glib-2.56.2-hd9629dc_0
gmp-6.1.2-hb37e062_1
gmpy2-2.0.8-py37h6ef4df4_2
greenlet-0.4.15-py37h1de35cc_0
h5py-2.9.0-py37h3134771_0
hdf5-1.10.4-hfa1e0ec_0
html5lib-1.0.1-py37_0
imageio-2.5.0-py37_0
imagesize-1.1.0-py37_0
iniconfig-1.1.1-pyhd3eb1b0_0
isort-4.3.16-py37_0
itsdangerous-1.1.0-py37_0
jbig-2.1-h4d881f8_0
jdcal-1.4-py37_0
jupyter-1.0.0-py37_7
jupyter_console-6.0.0-py37_0
keyring-23.4.0-py37hecd8cb5_0
krb5-1.16.1-hddcf347_7
lazy-object-proxy-1.3.1-py37h1de35cc_2
libcurl-7.64.0-h051b688_2
libcxxabi-4.0.1-hcfea43d_1
libssh2-1.8.0-ha12b0ac_4
llvmlite-0.28.0-py37h8c7ce04_0
lzo-2.10-h362108e_2
mccabe-0.6.1-py37_1
more-itertools-6.0.0-py37_0
mpc-1.1.0-h6ef4df4_1
mpfr-4.0.1-h3018a27_3
mpmath-1.1.0-py37_0
multipledispatch-0.6.0-py37_0
networkx-2.6.3-pyhd3eb1b0_0
nltk-3.4-py37_1
nose-1.3.7-py37_2
numba-0.43.1-py37h6440ff4_0
numpydoc-0.8.0-py37_0
openpyxl-3.0.9-pyhd3eb1b0_0
pandoc-2.2.3.2-0
path.py-11.5.0-py37_0
pathlib2-2.3.3-py37_0
patsy-0.5.1-py37_0
pcre-8.43-h0a44026_0
pep8-1.7.1-py37_0
pluggy-1.0.0-py37hecd8cb5_0
ply-3.11-py37_0
prompt_toolkit-2.0.9-py37_0
py-1.10.0-pyhd3eb1b0_0
pycodestyle-2.5.0-py37_0
pycrypto-2.6.1-py37h1de35cc_9
pycurl-7.43.0.2-py37ha12b0ac_0
pyflakes-2.1.1-py37_0
pylint-2.3.1-py37_0
pyodbc-4.0.26-py37h0a44026_0
pytables-3.5.1-py37h5bccee9_0
pytest-6.2.5-py37hecd8cb5_2
pytest-arraydiff-0.3-py37h39e3cac_0
pytest-astropy-0.5.0-py37_0
pytest-doctestplus-0.3.0-py37_0
pytest-openfiles-0.3.2-py37_0
pytest-remotedata-0.3.1-py37_0
pywavelets-1.0.2-py37h1d22016_0
qtawesome-0.5.7-py37_1
qtconsole-4.4.3-py37_0
rope-0.12.0-py37_0
scikit-image-0.14.2-py37h0a44026_0
scikit-learn-0.20.3-py37h27c97d8_0
seaborn-0.9.0-py37_0
simplegeneric-0.8.1-py37_2
singledispatch-3.4.0.3-py37_0
snappy-1.1.7-he62c110_3
snowballstemmer-1.2.1-py37_0
sortedcollections-1.1.2-py37_0
sphinx-1.8.5-py37_0
sphinxcontrib-1.0-py37_1
sphinxcontrib-websupport-1.1.0-py37_1
spyder-3.3.3-py37_0
spyder-kernels-0.4.2-py37_0
sqlalchemy-1.3.1-py37h1de35cc_0
statsmodels-0.11.1-py37haf1e3a3_0
sympy-1.3-py37_0
tbb-2020.0-h04f5b5a_0
toml-0.10.2-pyhd3eb1b0_0
unicodecsv-0.14.1-py37_0
unixodbc-2.3.7-h1de35cc_0
werkzeug-0.14.1-py37_0
wrapt-1.11.1-py37h1de35cc_0
wurlitzer-1.0.2-py37_0
xlrd-1.2.0-py37_0
xlsxwriter-1.1.5-py37_0
xlwings-0.15.4-py37_0
xlwt-1.3.0-py37_0
The following packages will be UPDATED:
anaconda-client 1.7.2-py37_0 --> 1.9.0-py37hecd8cb5_0
appnope 0.1.0-py37_0 --> 0.1.2-py37hecd8cb5_1001
babel pkgs/main/osx-64::babel-2.6.0-py37_0 --> pkgs/main/noarch::babel-2.9.1-pyhd3eb1b0_0
backcall pkgs/main/osx-64::backcall-0.1.0-py37~ --> pkgs/main/noarch::backcall-0.2.0-pyhd3eb1b0_0
beautifulsoup4 pkgs/main/osx-64::beautifulsoup4-4.7.~ --> pkgs/main/noarch::beautifulsoup4-4.10.0-pyh06a4308_0
bleach pkgs/main/osx-64::bleach-3.1.0-py37_0 --> pkgs/main/noarch::bleach-4.1.0-pyhd3eb1b0_0
bottleneck 1.2.1-py37h1d22016_1 --> 1.3.2-py37hf1fa96c_1
bzip2 1.0.6-h1de35cc_5 --> 1.0.8-h1de35cc_0
cffi 1.12.2-py37hb5b8e2f_1 --> 1.15.0-py37hca72f7f_0
chardet 3.0.4-py37_1 --> 4.0.0-py37hecd8cb5_1003
click pkgs/main/osx-64::click-7.0-py37_0 --> pkgs/main/noarch::click-8.0.3-pyhd3eb1b0_0
conda-package-han~ conda-forge::conda-package-handling-1~ --> pkgs/main::conda-package-handling-1.7.3-py37h9ed2024_1
cryptography 2.6.1-py37ha12b0ac_0 --> 36.0.0-py37hf6deb26_0
cycler pkgs/main/osx-64::cycler-0.10.0-py37_0 --> pkgs/main/noarch::cycler-0.11.0-pyhd3eb1b0_0
cytoolz 0.9.0.1-py37h1de35cc_1 --> 0.11.0-py37haf1e3a3_0
dask-core pkgs/main/osx-64::dask-core-1.1.4-py3~ --> pkgs/main/noarch::dask-core-2021.10.0-pyhd3eb1b0_0
decorator pkgs/main/osx-64::decorator-4.4.0-py3~ --> pkgs/main/noarch::decorator-5.1.0-pyhd3eb1b0_0
defusedxml pkgs/main/osx-64::defusedxml-0.5.0-py~ --> pkgs/main/noarch::defusedxml-0.7.1-pyhd3eb1b0_0
filelock pkgs/main/osx-64::filelock-3.0.10-py3~ --> pkgs/main/noarch::filelock-3.4.2-pyhd3eb1b0_0
freetype 2.9.1-hb4e5f40_0 --> 2.11.0-hd8bbffd_0
future 0.17.1-py37_0 --> 0.18.2-py37_1
glob2 pkgs/main/osx-64::glob2-0.6-py37_1 --> pkgs/main/noarch::glob2-0.7-pyhd3eb1b0_0
heapdict pkgs/main/osx-64::heapdict-1.0.0-py37~ --> pkgs/main/noarch::heapdict-1.0.1-pyhd3eb1b0_0
icu 58.2-h4b95b61_1 --> 58.2-h0a44026_3
idna pkgs/main/osx-64::idna-2.8-py37_0 --> pkgs/main/noarch::idna-3.3-pyhd3eb1b0_0
intel-openmp 2019.3-199 --> 2021.4.0-hecd8cb5_3538
ipykernel 5.1.0-py37h39e3cac_0 --> 6.4.1-py37hecd8cb5_1
ipython 7.4.0-py37h39e3cac_0 --> 7.29.0-py37h01d92e1_0
ipython_genutils pkgs/main/osx-64::ipython_genutils-0.~ --> pkgs/main/noarch::ipython_genutils-0.2.0-pyhd3eb1b0_1
ipywidgets pkgs/main/osx-64::ipywidgets-7.4.2-py~ --> pkgs/main/noarch::ipywidgets-7.6.5-pyhd3eb1b0_1
jedi 0.13.3-py37_0 --> 0.18.1-py37hecd8cb5_0
jinja2 pkgs/main/osx-64::jinja2-2.10-py37_0 --> pkgs/main/noarch::jinja2-2.11.3-pyhd3eb1b0_0
jpeg 9b-he5867d9_2 --> 9d-h9ed2024_0
jsonschema pkgs/main/osx-64::jsonschema-3.0.1-py~ --> pkgs/main/noarch::jsonschema-3.2.0-pyhd3eb1b0_2
jupyter_client pkgs/main/osx-64::jupyter_client-5.2.~ --> pkgs/main/noarch::jupyter_client-7.1.0-pyhd3eb1b0_0
jupyter_core 4.4.0-py37_0 --> 4.9.1-py37hecd8cb5_0
jupyterlab pkgs/main/osx-64::jupyterlab-0.35.4-p~ --> pkgs/main/noarch::jupyterlab-3.2.1-pyhd3eb1b0_1
jupyterlab_server pkgs/main/osx-64::jupyterlab_server-0~ --> pkgs/main/noarch::jupyterlab_server-2.10.2-pyhd3eb1b0_1
kiwisolver 1.0.1-py37h0a44026_0 --> 1.3.1-py37h23ab428_0
libarchive 3.3.3-h786848e_5 --> 3.4.2-haa3ed63_0
libedit 3.1.20181209-hb402a30_0 --> 3.1.20210910-hca72f7f_0
libffi 3.2.1-h475c297_4 --> 3.2.1-h0a44026_1007
libiconv 1.15-hdd342a3_7 --> 1.16-h1de35cc_0
liblief 0.9.0-h2a1bed3_2 --> 0.10.1-h0a44026_0
libpng 1.6.36-ha441bb4_0 --> 1.6.37-ha441bb4_0
libsodium 1.0.16-h3efe00b_0 --> 1.0.18-h1de35cc_0
libtiff 4.0.10-hcb84e12_2 --> 4.2.0-h87d7836_0
libxml2 2.9.9-hab757c2_0 --> 2.9.12-hcdb78fc_0
libxslt 1.1.33-h33a18ac_0 --> 1.1.34-h83b36ba_0
locket 0.2.0-py37_1 --> 0.2.1-py37hecd8cb5_1
lxml 4.3.2-py37hef8c89e_0 --> 4.7.1-py37h65b224f_1
lz4-c 1.8.1.2-h1de35cc_0 --> 1.9.3-h23ab428_1
markupsafe 1.1.1-py37h1de35cc_0 --> 2.0.1-py37h9ed2024_0
matplotlib 3.0.3-py37h54f8f79_0 --> 3.5.0-py37hecd8cb5_0
matplotlib-base conda-forge::matplotlib-base-3.1.1-py~ --> pkgs/main::matplotlib-base-3.5.0-py37h4f681db_0
mkl 2019.4-233 --> 2021.4.0-hecd8cb5_637
mkl-service 2.3.0-py37h9ed2024_0 --> 2.4.0-py37h9ed2024_0
mkl_fft 1.0.10-py37h5e564d8_0 --> 1.3.1-py37h4ab4a9b_0
mkl_random 1.0.2-py37h27c97d8_0 --> 1.2.2-py37hb2f4e1b_0
msgpack-python 0.6.1-py37h04f5b5a_1 --> 1.0.2-py37hf7b0b51_1
nbconvert 5.4.1-py37_3 --> 6.3.0-py37hecd8cb5_0
nbformat pkgs/main/osx-64::nbformat-4.4.0-py37~ --> pkgs/main/noarch::nbformat-5.1.3-pyhd3eb1b0_0
ncurses 6.1-h0a44026_1 --> 6.3-hca72f7f_2
notebook 5.7.8-py37_0 --> 6.4.6-py37hecd8cb5_0
numexpr 2.7.3-py37h16bde0e_0 --> 2.8.1-py37h2e5f0a9_0
numpy 1.19.2-py37h456fd55_0 --> 1.21.2-py37h4b4dc7a_0
numpy-base 1.19.2-py37hcfb5961_0 --> 1.21.2-py37he0bd621_0
pandocfilters 1.4.2-py37_1 --> 1.4.3-py37hecd8cb5_1
parso pkgs/main/osx-64::parso-0.3.4-py37_0 --> pkgs/main/noarch::parso-0.8.3-pyhd3eb1b0_0
partd pkgs/main/osx-64::partd-0.3.10-py37_1 --> pkgs/main/noarch::partd-1.2.0-pyhd3eb1b0_0
pexpect pkgs/main/osx-64::pexpect-4.6.0-py37_0 --> pkgs/main/noarch::pexpect-4.8.0-pyhd3eb1b0_3
pickleshare pkgs/main/osx-64::pickleshare-0.7.5-p~ --> pkgs/main/noarch::pickleshare-0.7.5-pyhd3eb1b0_1003
pillow 5.4.1-py37hb68e598_0 --> 8.4.0-py37h98e4679_0
pip 19.0.3-py37_0 --> 21.2.2-py37hecd8cb5_0
pkginfo 1.5.0.1-py37_0 --> 1.7.1-py37hecd8cb5_0
prometheus_client pkgs/main/osx-64::prometheus_client-0~ --> pkgs/main/noarch::prometheus_client-0.12.0-pyhd3eb1b0_0
psutil 5.6.1-py37h1de35cc_0 --> 5.8.0-py37h9ed2024_1
ptyprocess pkgs/main/osx-64::ptyprocess-0.6.0-py~ --> pkgs/main/noarch::ptyprocess-0.7.0-pyhd3eb1b0_2
py-lief 0.9.0-py37h1413db1_2 --> 0.10.1-py37haf313ee_0
pycparser pkgs/main/osx-64::pycparser-2.19-py37~ --> pkgs/main/noarch::pycparser-2.21-pyhd3eb1b0_0
pygments pkgs/main/osx-64::pygments-2.3.1-py37~ --> pkgs/main/noarch::pygments-2.10.0-pyhd3eb1b0_0
pykdtree conda-forge::pykdtree-1.3.1-py37h3b54~ --> pkgs/main::pykdtree-1.3.4-py37he3068b8_1002
pyopenssl pkgs/main/osx-64::pyopenssl-19.0.0-py~ --> pkgs/main/noarch::pyopenssl-21.0.0-pyhd3eb1b0_1
pyparsing pkgs/main/osx-64::pyparsing-2.3.1-py3~ --> pkgs/main/noarch::pyparsing-3.0.4-pyhd3eb1b0_0
pyrsistent 0.14.11-py37h1de35cc_0 --> 0.18.0-py37hca72f7f_0
pyshp conda-forge::pyshp-2.1.0-py_0 --> pkgs/main::pyshp-2.1.3-pyhd3eb1b0_0
pysocks 1.6.8-py37_0 --> 1.7.1-py37hecd8cb5_0
python-dateutil pkgs/main/osx-64::python-dateutil-2.8~ --> pkgs/main/noarch::python-dateutil-2.8.2-pyhd3eb1b0_0
python-libarchive~ pkgs/main/osx-64::python-libarchive-c~ --> pkgs/main/noarch::python-libarchive-c-2.9-pyhd3eb1b0_1
pytz pkgs/main/osx-64::pytz-2018.9-py37_0 --> pkgs/main/noarch::pytz-2021.3-pyhd3eb1b0_0
pyyaml 5.1-py37h1de35cc_0 --> 6.0-py37hca72f7f_1
pyzmq 18.0.0-py37h0a44026_0 --> 22.3.0-py37he9d5cce_2
qtpy pkgs/main/osx-64::qtpy-1.7.0-py37_1 --> pkgs/main/noarch::qtpy-1.10.0-pyhd3eb1b0_0
requests pkgs/main/osx-64::requests-2.21.0-py3~ --> pkgs/main/noarch::requests-2.27.1-pyhd3eb1b0_0
ruamel_yaml 0.15.46-py37h1de35cc_0 --> 0.15.100-py37h9ed2024_0
scipy 1.2.1-py37h1410ff5_0 --> 1.7.3-py37h8c7af03_0
send2trash pkgs/main/osx-64::send2trash-1.5.0-py~ --> pkgs/main/noarch::send2trash-1.8.0-pyhd3eb1b0_1
setuptools 40.8.0-py37_0 --> 58.0.4-py37hecd8cb5_0
six pkgs/main/osx-64::six-1.12.0-py37_0 --> pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_0
sortedcontainers pkgs/main/osx-64::sortedcontainers-2.~ --> pkgs/main/noarch::sortedcontainers-2.4.0-pyhd3eb1b0_0
soupsieve pkgs/main/osx-64::soupsieve-1.8-py37_0 --> pkgs/main/noarch::soupsieve-2.3.1-pyhd3eb1b0_0
sqlite 3.27.2-ha441bb4_0 --> 3.33.0-hffcf06c_0
tblib pkgs/main/osx-64::tblib-1.3.2-py37_0 --> pkgs/main/noarch::tblib-1.7.0-pyhd3eb1b0_0
terminado 0.8.1-py37_1 --> 0.9.4-py37hecd8cb5_0
testpath pkgs/main/osx-64::testpath-0.4.2-py37~ --> pkgs/main/noarch::testpath-0.5.0-pyhd3eb1b0_0
tk 8.6.8-ha441bb4_0 --> 8.6.11-h7bc2e8c_0
toolz pkgs/main/osx-64::toolz-0.9.0-py37_0 --> pkgs/main/noarch::toolz-0.11.2-pyhd3eb1b0_0
tornado 6.0.2-py37h1de35cc_0 --> 6.1-py37h9ed2024_0
traitlets pkgs/main/osx-64::traitlets-4.3.2-py3~ --> pkgs/main/noarch::traitlets-5.1.1-pyhd3eb1b0_0
urllib3 pkgs/main/osx-64::urllib3-1.24.3-py37~ --> pkgs/main/noarch::urllib3-1.26.7-pyhd3eb1b0_0
wcwidth pkgs/main/osx-64::wcwidth-0.1.7-py37_0 --> pkgs/main/noarch::wcwidth-0.2.5-pyhd3eb1b0_0
wheel pkgs/main/osx-64::wheel-0.33.1-py37_0 --> pkgs/main/noarch::wheel-0.37.1-pyhd3eb1b0_0
widgetsnbextension 3.4.2-py37_0 --> 3.5.1-py37_0
xz 5.2.4-h1de35cc_4 --> 5.2.5-h1de35cc_0
yaml 0.1.7-hc338f04_2 --> 0.2.5-haf1e3a3_0
zeromq 4.3.1-h0a44026_3 --> 4.3.4-h23ab428_0
zict pkgs/main/osx-64::zict-0.1.4-py37_0 --> pkgs/main/noarch::zict-2.0.0-pyhd3eb1b0_0
zlib 1.2.11-h1de35cc_3 --> 1.2.11-h4dc903c_4
zstd 1.3.7-h5bba6e5_0 --> 1.4.9-h322a384_0
The following packages will be SUPERSEDED by a higher-priority channel:
owslib conda-forge::owslib-0.19.1-py_0 --> pkgs/main::owslib-0.18.0-py_0
proj4 conda-forge::proj4-5.2.0-h6de7cb9_1006 --> pkgs/main::proj4-5.2.0-h0a44026_1
pyepsg conda-forge/noarch::pyepsg-0.4.0-py_0 --> pkgs/main/osx-64::pyepsg-0.4.0-py37_0
The following packages will be DOWNGRADED:
pycosat 0.6.3-py37h1de35cc_0 --> 0.6.3-py37h9ed2024_0
pyqt 5.9.2-py37h655552a_2 --> 5.6.0-py37h655552a_6
qt 5.9.7-h468cd18_1 --> 5.6.3-h1d42b2f_0
sip 4.19.8-py37h0a44026_0 --> 4.18.1-py37h23ab428_2
xmltodict 0.12.0-py_0 --> 0.12.0-pyhd3eb1b0_0
Upvotes: 0
Views: 720
Reputation: 790
You could use conda remove dask --force
Per documentation, --force forces removal of a package without removing packages that depend on it. Using this option will usually leave your environment in a broken and inconsistent state.
Upvotes: 3