Skip to content

Resolver fails to keep 2nd level dependencies that use optional packages when performing "update" #2545

Closed
python-poetry/poetry-core
#78

Description

  • I am on the latest Poetry version.

  • I have searched the issues of this repo and believe that this is not a duplicate (see comment below with possible linked issues).

  • If an exception occurs when executing a command, I executed it again in debug mode (-vvv option).

  • OS version and name: macOS 10.15.5

  • Poetry version: 1.0.9, 1.0.10, 1.1.0b2

  • Link of a Gist with the contents of your pyproject.toml file: See commands below

Issue

There is an inconsistency between the install and update commands when it comes to resolving dependencies of packages that require themselves a package with extras.

Consider the following minimal example:

  • tsfresh depends on dask[dataframe]
  • dask[dataframe] depends on fsspec and partd
$ poetry new test_proj
$ cd test_proj
$ poetry install
$ poetry add tsfresh  # here everything gets installed as it should
$ poetry update  # here fsspec and partd are removed (together with locket because partd depends on it)

I must say that I found old issues that seem to be similar but since this is a very critical bug, I chose to open a new issue for visibility anyway. Also, it seems mine is more general than these:

#2300
#2494
#2080

Here are the logs of both commands:

install

Updating dependencies
Resolving dependencies...
   1: fact: test-proj2 is 0.1.0
   1: derived: test-proj2
   1: fact: test-proj2 depends on tsfresh (0.16.0)
   1: fact: test-proj2 depends on pytest (^5.2)
   1: fact: test-proj2 depends on pytest (^5.2)
   1: selecting test-proj2 (0.1.0)
   1: derived: pytest (^5.2)
   1: derived: tsfresh (0.16.0)
   1: fact: tsfresh (0.16.0) depends on requests (>=2.9.1)
   1: fact: tsfresh (0.16.0) depends on numpy (>=1.15.1)
   1: fact: tsfresh (0.16.0) depends on pandas (>=0.20.3,<0.24.0 || >=0.25.0)
   1: fact: tsfresh (0.16.0) depends on scipy (>=1.2.0)
   1: fact: tsfresh (0.16.0) depends on statsmodels (>=0.8.0)
   1: fact: tsfresh (0.16.0) depends on patsy (>=0.4.1)
   1: fact: tsfresh (0.16.0) depends on scikit-learn (>=0.19.0)
   1: fact: tsfresh (0.16.0) depends on tqdm (>=4.10.0)
   1: fact: tsfresh (0.16.0) depends on dask (>=0.15.2)
   1: fact: tsfresh (0.16.0) depends on distributed (>=1.18.3)
   1: selecting tsfresh (0.16.0)
   1: derived: distributed (>=1.18.3)
   1: derived: dask (>=0.15.2)
   1: derived: tqdm (>=4.10.0)
   1: derived: scikit-learn (>=0.19.0)
   1: derived: patsy (>=0.4.1)
   1: derived: statsmodels (>=0.8.0)
   1: derived: scipy (>=1.2.0)
   1: derived: pandas (>=0.20.3,<0.24.0 || >=0.25.0)
   1: derived: numpy (>=1.15.1)
   1: derived: requests (>=2.9.1)
   1: fact: patsy (0.5.1) depends on six (*)
   1: fact: patsy (0.5.1) depends on numpy (>=1.4)
   1: selecting patsy (0.5.1)
   1: derived: six (*)
   1: fact: statsmodels (0.11.1) depends on numpy (>=1.14)
   1: fact: statsmodels (0.11.1) depends on scipy (>=1.0)
   1: fact: statsmodels (0.11.1) depends on pandas (>=0.21)
   1: fact: statsmodels (0.11.1) depends on patsy (>=0.5)
   1: selecting statsmodels (0.11.1)
   1: derived: pandas (>=0.21)
   1: fact: scipy (1.4.1) depends on numpy (>=1.13.3)
   1: selecting scipy (1.4.1)
   1: fact: pytest (5.4.3) depends on py (>=1.5.0)
   1: fact: pytest (5.4.3) depends on packaging (*)
   1: fact: pytest (5.4.3) depends on attrs (>=17.4.0)
   1: fact: pytest (5.4.3) depends on more-itertools (>=4.0.0)
   1: fact: pytest (5.4.3) depends on pluggy (>=0.12,<1.0)
   1: fact: pytest (5.4.3) depends on wcwidth (*)
   1: fact: pytest (5.4.3) depends on importlib-metadata (>=0.12)
   1: fact: pytest (5.4.3) depends on atomicwrites (>=1.0)
   1: fact: pytest (5.4.3) depends on colorama (*)
   1: selecting pytest (5.4.3)
   1: derived: colorama (*)
   1: derived: atomicwrites (>=1.0)
   1: derived: importlib-metadata (>=0.12)
   1: derived: wcwidth (*)
   1: derived: pluggy (>=0.12,<1.0)
   1: derived: more-itertools (>=4.0.0)
   1: derived: attrs (>=17.4.0)
   1: derived: packaging (*)
   1: derived: py (>=1.5.0)
   1: fact: pluggy (0.13.1) depends on importlib-metadata (>=0.12)
   1: selecting pluggy (0.13.1)
   1: selecting attrs (19.3.0)
   1: selecting atomicwrites (1.4.0)
   1: selecting py (1.8.1)
   1: selecting wcwidth (0.2.4)
   1: selecting more-itertools (8.3.0)
   1: fact: pandas (1.0.4) depends on python-dateutil (>=2.6.1)
   1: fact: pandas (1.0.4) depends on pytz (>=2017.2)
   1: fact: pandas (1.0.4) depends on numpy (>=1.13.3)
   1: selecting pandas (1.0.4)
   1: derived: pytz (>=2017.2)
   1: derived: python-dateutil (>=2.6.1)
   1: fact: python-dateutil (2.8.1) depends on six (>=1.5)
   1: selecting python-dateutil (2.8.1)
   1: derived: six (>=1.5)
   1: selecting pytz (2020.1)
   1: selecting six (1.15.0)
   1: fact: scikit-learn (0.23.1) depends on numpy (>=1.13.3)
   1: fact: scikit-learn (0.23.1) depends on scipy (>=0.19.1)
   1: fact: scikit-learn (0.23.1) depends on joblib (>=0.11)
   1: fact: scikit-learn (0.23.1) depends on threadpoolctl (>=2.0.0)
   1: selecting scikit-learn (0.23.1)
   1: derived: threadpoolctl (>=2.0.0)
   1: derived: joblib (>=0.11)
   1: selecting threadpoolctl (2.1.0)
   1: selecting joblib (0.15.1)
   1: selecting numpy (1.18.5)
   1: fact: importlib-metadata (1.6.1) depends on zipp (>=0.5)
   1: selecting importlib-metadata (1.6.1)
   1: derived: zipp (>=0.5)
   1: selecting zipp (3.1.0)
   1: fact: packaging (20.4) depends on pyparsing (>=2.0.2)
   1: fact: packaging (20.4) depends on six (*)
   1: selecting packaging (20.4)
   1: derived: pyparsing (>=2.0.2)
   1: selecting pyparsing (2.4.7)
   1: fact: requests (2.23.0) depends on chardet (>=3.0.2,<4)
   1: fact: requests (2.23.0) depends on idna (>=2.5,<3)
   1: fact: requests (2.23.0) depends on urllib3 (>=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26)
   1: fact: requests (2.23.0) depends on certifi (>=2017.4.17)
   1: selecting requests (2.23.0)
   1: derived: certifi (>=2017.4.17)
   1: derived: urllib3 (>=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26)
   1: derived: idna (>=2.5,<3)
   1: derived: chardet (>=3.0.2,<4)
   1: selecting chardet (3.0.4)
   1: selecting idna (2.9)
   1: selecting urllib3 (1.25.9)
   1: selecting certifi (2020.4.5.2)
   1: selecting colorama (0.4.3)
   1: fact: dask (2.18.1) depends on pyyaml (*)
   1: fact: dask (2.18.1) depends on numpy (>=1.13.0)
   1: fact: dask (2.18.1) depends on pandas (>=0.23.0)
   1: fact: dask (2.18.1) depends on toolz (>=0.8.2)
   1: fact: dask (2.18.1) depends on partd (>=0.3.10)
   1: fact: dask (2.18.1) depends on fsspec (>=0.6.0)
   1: selecting dask (2.18.1)
   1: derived: fsspec (>=0.6.0)
   1: derived: partd (>=0.3.10)
   1: derived: toolz (>=0.8.2)
   1: derived: pyyaml (*)
   1: fact: partd (1.1.0) depends on locket (*)
   1: fact: partd (1.1.0) depends on toolz (*)
   1: selecting partd (1.1.0)
   1: derived: locket (*)
   1: selecting toolz (0.10.0)
   1: selecting locket (0.2.0)
   1: selecting fsspec (0.7.4)
   1: selecting pyyaml (5.3.1)
   1: selecting tqdm (4.46.1)
   0: Duplicate dependencies for tornado
   0: Different requirements found for tornado (>=5) and tornado (>=6.0.3).
   1: Version solving took 1.504 seconds.
   1: Tried 1 solutions.
   0: Retrying dependency resolution for Python (>=3.7,<3.8).
   1: fact: test-proj2 is 0.1.0
   1: derived: test-proj2
   1: fact: test-proj2 depends on tsfresh (0.16.0)
   1: fact: test-proj2 depends on pytest (^5.2)
   1: fact: test-proj2 depends on pytest (^5.2)
   1: selecting test-proj2 (0.1.0)
   1: derived: pytest (^5.2)
   1: derived: tsfresh (0.16.0)
   1: fact: tsfresh (0.16.0) depends on requests (>=2.9.1)
   1: fact: tsfresh (0.16.0) depends on numpy (>=1.15.1)
   1: fact: tsfresh (0.16.0) depends on pandas (>=0.20.3,<0.24.0 || >=0.25.0)
   1: fact: tsfresh (0.16.0) depends on scipy (>=1.2.0)
   1: fact: tsfresh (0.16.0) depends on statsmodels (>=0.8.0)
   1: fact: tsfresh (0.16.0) depends on patsy (>=0.4.1)
   1: fact: tsfresh (0.16.0) depends on scikit-learn (>=0.19.0)
   1: fact: tsfresh (0.16.0) depends on tqdm (>=4.10.0)
   1: fact: tsfresh (0.16.0) depends on dask (>=0.15.2)
   1: fact: tsfresh (0.16.0) depends on distributed (>=1.18.3)
   1: selecting tsfresh (0.16.0)
   1: derived: distributed (>=1.18.3)
   1: derived: dask (>=0.15.2)
   1: derived: tqdm (>=4.10.0)
   1: derived: scikit-learn (>=0.19.0)
   1: derived: patsy (>=0.4.1)
   1: derived: statsmodels (>=0.8.0)
   1: derived: scipy (>=1.2.0)
   1: derived: pandas (>=0.20.3,<0.24.0 || >=0.25.0)
   1: derived: numpy (>=1.15.1)
   1: derived: requests (>=2.9.1)
   1: fact: patsy (0.5.1) depends on six (*)
   1: fact: patsy (0.5.1) depends on numpy (>=1.4)
   1: selecting patsy (0.5.1)
   1: derived: six (*)
   1: fact: statsmodels (0.11.1) depends on numpy (>=1.14)
   1: fact: statsmodels (0.11.1) depends on scipy (>=1.0)
   1: fact: statsmodels (0.11.1) depends on pandas (>=0.21)
   1: fact: statsmodels (0.11.1) depends on patsy (>=0.5)
   1: selecting statsmodels (0.11.1)
   1: derived: pandas (>=0.21)
   1: fact: scipy (1.4.1) depends on numpy (>=1.13.3)
   1: selecting scipy (1.4.1)
   1: fact: pytest (5.4.3) depends on py (>=1.5.0)
   1: fact: pytest (5.4.3) depends on packaging (*)
   1: fact: pytest (5.4.3) depends on attrs (>=17.4.0)
   1: fact: pytest (5.4.3) depends on more-itertools (>=4.0.0)
   1: fact: pytest (5.4.3) depends on pluggy (>=0.12,<1.0)
   1: fact: pytest (5.4.3) depends on wcwidth (*)
   1: fact: pytest (5.4.3) depends on importlib-metadata (>=0.12)
   1: fact: pytest (5.4.3) depends on atomicwrites (>=1.0)
   1: fact: pytest (5.4.3) depends on colorama (*)
   1: selecting pytest (5.4.3)
   1: derived: colorama (*)
   1: derived: atomicwrites (>=1.0)
   1: derived: importlib-metadata (>=0.12)
   1: derived: wcwidth (*)
   1: derived: pluggy (>=0.12,<1.0)
   1: derived: more-itertools (>=4.0.0)
   1: derived: attrs (>=17.4.0)
   1: derived: packaging (*)
   1: derived: py (>=1.5.0)
   1: fact: pluggy (0.13.1) depends on importlib-metadata (>=0.12)
   1: selecting pluggy (0.13.1)
   1: selecting attrs (19.3.0)
   1: selecting atomicwrites (1.4.0)
   1: selecting py (1.8.1)
   1: selecting wcwidth (0.2.4)
   1: selecting more-itertools (8.3.0)
   1: fact: pandas (1.0.4) depends on python-dateutil (>=2.6.1)
   1: fact: pandas (1.0.4) depends on pytz (>=2017.2)
   1: fact: pandas (1.0.4) depends on numpy (>=1.13.3)
   1: selecting pandas (1.0.4)
   1: derived: pytz (>=2017.2)
   1: derived: python-dateutil (>=2.6.1)
   1: fact: python-dateutil (2.8.1) depends on six (>=1.5)
   1: selecting python-dateutil (2.8.1)
   1: derived: six (>=1.5)
   1: selecting pytz (2020.1)
   1: selecting six (1.15.0)
   1: fact: scikit-learn (0.23.1) depends on numpy (>=1.13.3)
   1: fact: scikit-learn (0.23.1) depends on scipy (>=0.19.1)
   1: fact: scikit-learn (0.23.1) depends on joblib (>=0.11)
   1: fact: scikit-learn (0.23.1) depends on threadpoolctl (>=2.0.0)
   1: selecting scikit-learn (0.23.1)
   1: derived: threadpoolctl (>=2.0.0)
   1: derived: joblib (>=0.11)
   1: selecting threadpoolctl (2.1.0)
   1: selecting joblib (0.15.1)
   1: selecting numpy (1.18.5)
   1: fact: importlib-metadata (1.6.1) depends on zipp (>=0.5)
   1: selecting importlib-metadata (1.6.1)
   1: derived: zipp (>=0.5)
   1: selecting zipp (3.1.0)
   1: fact: packaging (20.4) depends on pyparsing (>=2.0.2)
   1: fact: packaging (20.4) depends on six (*)
   1: selecting packaging (20.4)
   1: derived: pyparsing (>=2.0.2)
   1: selecting pyparsing (2.4.7)
   1: fact: requests (2.23.0) depends on chardet (>=3.0.2,<4)
   1: fact: requests (2.23.0) depends on idna (>=2.5,<3)
   1: fact: requests (2.23.0) depends on urllib3 (>=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26)
   1: fact: requests (2.23.0) depends on certifi (>=2017.4.17)
   1: selecting requests (2.23.0)
   1: derived: certifi (>=2017.4.17)
   1: derived: urllib3 (>=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26)
   1: derived: idna (>=2.5,<3)
   1: derived: chardet (>=3.0.2,<4)
   1: selecting chardet (3.0.4)
   1: selecting idna (2.9)
   1: selecting urllib3 (1.25.9)
   1: selecting certifi (2020.4.5.2)
   1: selecting colorama (0.4.3)
   1: fact: dask (2.18.1) depends on pyyaml (*)
   1: fact: dask (2.18.1) depends on numpy (>=1.13.0)
   1: fact: dask (2.18.1) depends on pandas (>=0.23.0)
   1: fact: dask (2.18.1) depends on toolz (>=0.8.2)
-->1: fact: dask (2.18.1) depends on partd (>=0.3.10)  # note they are found here
-->1: fact: dask (2.18.1) depends on fsspec (>=0.6.0)  # note they are found here
   1: selecting dask (2.18.1)
   1: derived: fsspec (>=0.6.0)
   1: derived: partd (>=0.3.10)
   1: derived: toolz (>=0.8.2)
   1: derived: pyyaml (*)
   1: fact: partd (1.1.0) depends on locket (*)
   1: fact: partd (1.1.0) depends on toolz (*)
   1: selecting partd (1.1.0)
   1: derived: locket (*)
   1: selecting toolz (0.10.0)
   1: selecting locket (0.2.0)
   1: selecting fsspec (0.7.4)
   1: selecting pyyaml (5.3.1)
   1: selecting tqdm (4.46.1)
   1: fact: distributed (2.18.0) depends on click (>=6.6)
   1: fact: distributed (2.18.0) depends on cloudpickle (>=1.3.0)
   1: fact: distributed (2.18.0) depends on dask (>=2.9.0)
   1: fact: distributed (2.18.0) depends on msgpack (>=0.6.0)
   1: fact: distributed (2.18.0) depends on psutil (>=5.0)
   1: fact: distributed (2.18.0) depends on sortedcontainers (<2.0.0 || >2.0.0,<2.0.1 || >2.0.1)
   1: fact: distributed (2.18.0) depends on tblib (>=1.6.0)
   1: fact: distributed (2.18.0) depends on toolz (>=0.8.2)
   1: fact: distributed (2.18.0) depends on zict (>=0.1.3)
   1: fact: distributed (2.18.0) depends on pyyaml (*)
   1: fact: distributed (2.18.0) depends on tornado (>=5)
   1: selecting distributed (2.18.0)
   1: derived: tornado (>=5)
   1: derived: zict (>=0.1.3)
   1: derived: tblib (>=1.6.0)
   1: derived: sortedcontainers (<2.0.0 || >2.0.0,<2.0.1 || >2.0.1)
   1: derived: psutil (>=5.0)
   1: derived: msgpack (>=0.6.0)
   1: derived: cloudpickle (>=1.3.0)
   1: derived: click (>=6.6)
   1: selecting tblib (1.6.0)
   1: selecting cloudpickle (1.4.1)
   1: fact: zict (2.0.0) depends on heapdict (*)
   1: selecting zict (2.0.0)
   1: derived: heapdict (*)
   1: selecting msgpack (1.0.0)
   1: selecting click (7.1.2)
   1: selecting heapdict (1.0.1)
   1: selecting tornado (6.0.4)
   1: selecting psutil (5.7.0)
   1: selecting sortedcontainers (2.2.2)
   1: Version solving took 0.574 seconds.
   1: Tried 1 solutions.
   0: Retrying dependency resolution for Python (>=3.8,<4.0).
   1: fact: test-proj2 is 0.1.0
   1: derived: test-proj2
   1: fact: test-proj2 depends on tsfresh (0.16.0)
   1: fact: test-proj2 depends on pytest (^5.2)
   1: fact: test-proj2 depends on pytest (^5.2)
   1: selecting test-proj2 (0.1.0)
   1: derived: pytest (^5.2)
   1: derived: tsfresh (0.16.0)
   1: fact: tsfresh (0.16.0) depends on requests (>=2.9.1)
   1: fact: tsfresh (0.16.0) depends on numpy (>=1.15.1)
   1: fact: tsfresh (0.16.0) depends on pandas (>=0.20.3,<0.24.0 || >=0.25.0)
   1: fact: tsfresh (0.16.0) depends on scipy (>=1.2.0)
   1: fact: tsfresh (0.16.0) depends on statsmodels (>=0.8.0)
   1: fact: tsfresh (0.16.0) depends on patsy (>=0.4.1)
   1: fact: tsfresh (0.16.0) depends on scikit-learn (>=0.19.0)
   1: fact: tsfresh (0.16.0) depends on tqdm (>=4.10.0)
   1: fact: tsfresh (0.16.0) depends on dask (>=0.15.2)
   1: fact: tsfresh (0.16.0) depends on distributed (>=1.18.3)
   1: selecting tsfresh (0.16.0)
   1: derived: distributed (>=1.18.3)
   1: derived: dask (>=0.15.2)
   1: derived: tqdm (>=4.10.0)
   1: derived: scikit-learn (>=0.19.0)
   1: derived: patsy (>=0.4.1)
   1: derived: statsmodels (>=0.8.0)
   1: derived: scipy (>=1.2.0)
   1: derived: pandas (>=0.20.3,<0.24.0 || >=0.25.0)
   1: derived: numpy (>=1.15.1)
   1: derived: requests (>=2.9.1)
   1: fact: patsy (0.5.1) depends on six (*)
   1: fact: patsy (0.5.1) depends on numpy (>=1.4)
   1: selecting patsy (0.5.1)
   1: derived: six (*)
   1: fact: statsmodels (0.11.1) depends on numpy (>=1.14)
   1: fact: statsmodels (0.11.1) depends on scipy (>=1.0)
   1: fact: statsmodels (0.11.1) depends on pandas (>=0.21)
   1: fact: statsmodels (0.11.1) depends on patsy (>=0.5)
   1: selecting statsmodels (0.11.1)
   1: derived: pandas (>=0.21)
   1: fact: scipy (1.4.1) depends on numpy (>=1.13.3)
   1: selecting scipy (1.4.1)
   1: fact: pytest (5.4.3) depends on py (>=1.5.0)
   1: fact: pytest (5.4.3) depends on packaging (*)
   1: fact: pytest (5.4.3) depends on attrs (>=17.4.0)
   1: fact: pytest (5.4.3) depends on more-itertools (>=4.0.0)
   1: fact: pytest (5.4.3) depends on pluggy (>=0.12,<1.0)
   1: fact: pytest (5.4.3) depends on wcwidth (*)
   1: fact: pytest (5.4.3) depends on atomicwrites (>=1.0)
   1: fact: pytest (5.4.3) depends on colorama (*)
   1: selecting pytest (5.4.3)
   1: derived: colorama (*)
   1: derived: atomicwrites (>=1.0)
   1: derived: wcwidth (*)
   1: derived: pluggy (>=0.12,<1.0)
   1: derived: more-itertools (>=4.0.0)
   1: derived: attrs (>=17.4.0)
   1: derived: packaging (*)
   1: derived: py (>=1.5.0)
   1: selecting pluggy (0.13.1)
   1: selecting attrs (19.3.0)
   1: selecting atomicwrites (1.4.0)
   1: selecting py (1.8.1)
   1: selecting wcwidth (0.2.4)
   1: selecting more-itertools (8.3.0)
   1: fact: pandas (1.0.4) depends on python-dateutil (>=2.6.1)
   1: fact: pandas (1.0.4) depends on pytz (>=2017.2)
   1: fact: pandas (1.0.4) depends on numpy (>=1.13.3)
   1: selecting pandas (1.0.4)
   1: derived: pytz (>=2017.2)
   1: derived: python-dateutil (>=2.6.1)
   1: fact: python-dateutil (2.8.1) depends on six (>=1.5)
   1: selecting python-dateutil (2.8.1)
   1: derived: six (>=1.5)
   1: selecting pytz (2020.1)
   1: selecting six (1.15.0)
   1: fact: scikit-learn (0.23.1) depends on numpy (>=1.13.3)
   1: fact: scikit-learn (0.23.1) depends on scipy (>=0.19.1)
   1: fact: scikit-learn (0.23.1) depends on joblib (>=0.11)
   1: fact: scikit-learn (0.23.1) depends on threadpoolctl (>=2.0.0)
   1: selecting scikit-learn (0.23.1)
   1: derived: threadpoolctl (>=2.0.0)
   1: derived: joblib (>=0.11)
   1: selecting threadpoolctl (2.1.0)
   1: selecting joblib (0.15.1)
   1: selecting numpy (1.18.5)
   1: fact: packaging (20.4) depends on pyparsing (>=2.0.2)
   1: fact: packaging (20.4) depends on six (*)
   1: selecting packaging (20.4)
   1: derived: pyparsing (>=2.0.2)
   1: selecting pyparsing (2.4.7)
   1: fact: requests (2.23.0) depends on chardet (>=3.0.2,<4)
   1: fact: requests (2.23.0) depends on idna (>=2.5,<3)
   1: fact: requests (2.23.0) depends on urllib3 (>=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26)
   1: fact: requests (2.23.0) depends on certifi (>=2017.4.17)
   1: selecting requests (2.23.0)
   1: derived: certifi (>=2017.4.17)
   1: derived: urllib3 (>=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26)
   1: derived: idna (>=2.5,<3)
   1: derived: chardet (>=3.0.2,<4)
   1: selecting chardet (3.0.4)
   1: selecting idna (2.9)
   1: selecting urllib3 (1.25.9)
   1: selecting certifi (2020.4.5.2)
   1: selecting colorama (0.4.3)
   1: fact: dask (2.18.1) depends on pyyaml (*)
   1: fact: dask (2.18.1) depends on numpy (>=1.13.0)
   1: fact: dask (2.18.1) depends on pandas (>=0.23.0)
   1: fact: dask (2.18.1) depends on toolz (>=0.8.2)
   1: fact: dask (2.18.1) depends on partd (>=0.3.10)
   1: fact: dask (2.18.1) depends on fsspec (>=0.6.0)
   1: selecting dask (2.18.1)
   1: derived: fsspec (>=0.6.0)
   1: derived: partd (>=0.3.10)
   1: derived: toolz (>=0.8.2)
   1: derived: pyyaml (*)
   1: fact: partd (1.1.0) depends on locket (*)
   1: fact: partd (1.1.0) depends on toolz (*)
   1: selecting partd (1.1.0)
   1: derived: locket (*)
   1: selecting toolz (0.10.0)
   1: selecting locket (0.2.0)
   1: selecting fsspec (0.7.4)
   1: selecting pyyaml (5.3.1)
   1: selecting tqdm (4.46.1)
   1: fact: distributed (2.18.0) depends on click (>=6.6)
   1: fact: distributed (2.18.0) depends on cloudpickle (>=1.3.0)
   1: fact: distributed (2.18.0) depends on dask (>=2.9.0)
   1: fact: distributed (2.18.0) depends on msgpack (>=0.6.0)
   1: fact: distributed (2.18.0) depends on psutil (>=5.0)
   1: fact: distributed (2.18.0) depends on sortedcontainers (<2.0.0 || >2.0.0,<2.0.1 || >2.0.1)
   1: fact: distributed (2.18.0) depends on tblib (>=1.6.0)
   1: fact: distributed (2.18.0) depends on toolz (>=0.8.2)
   1: fact: distributed (2.18.0) depends on zict (>=0.1.3)
   1: fact: distributed (2.18.0) depends on pyyaml (*)
   1: fact: distributed (2.18.0) depends on tornado (>=6.0.3)
   1: selecting distributed (2.18.0)
   1: derived: tornado (>=6.0.3)
   1: derived: zict (>=0.1.3)
   1: derived: tblib (>=1.6.0)
   1: derived: sortedcontainers (<2.0.0 || >2.0.0,<2.0.1 || >2.0.1)
   1: derived: psutil (>=5.0)
   1: derived: msgpack (>=0.6.0)
   1: derived: cloudpickle (>=1.3.0)
   1: derived: click (>=6.6)
   1: selecting tblib (1.6.0)
   1: selecting tornado (6.0.4)
   1: selecting cloudpickle (1.4.1)
   1: fact: zict (2.0.0) depends on heapdict (*)
   1: selecting zict (2.0.0)
   1: derived: heapdict (*)
   1: selecting msgpack (1.0.0)
   1: selecting click (7.1.2)
   1: selecting heapdict (1.0.1)
   1: selecting psutil (5.7.0)
   1: selecting sortedcontainers (2.2.2)
   1: Version solving took 0.257 seconds.
   1: Tried 1 solutions.
   0: Complete version solving took 2.356 seconds for 2 branches
   0: Resolved for branches: (>=3.7,<3.8), (>=3.8,<4.0)

Writing lock file


Package operations: 44 installs, 0 updates, 0 removals, 2 skipped

  - Installing six (1.15.0)
  - Installing heapdict (1.0.1)
  - Installing locket (0.2.0)
  - Installing numpy (1.18.5)
  - Installing python-dateutil (2.8.1)
  - Installing pytz (2020.1)
  - Installing pyyaml (5.3.1)
  - Installing toolz (0.10.0)
  - Installing zipp (3.1.0)
  - Installing certifi (2020.4.5.2)
  - Installing chardet (3.0.4)
  - Installing click (7.1.2)
  - Installing cloudpickle (1.4.1)
  - Installing dask (2.18.1)
  - Installing fsspec (0.7.4)
  - Installing idna (2.9)
  - Installing importlib-metadata (1.6.1)
  - Installing joblib (0.15.1)
  - Installing msgpack (1.0.0)
  - Installing pandas (1.0.4)
  - Installing partd (1.1.0)
  - Installing patsy (0.5.1)
  - Installing psutil (5.7.0)
  - Installing pyparsing (2.4.7)
  - Installing scipy (1.4.1)
  - Installing sortedcontainers (2.2.2)
  - Installing tblib (1.6.0)
  - Installing threadpoolctl (2.1.0)
  - Installing tornado (6.0.4)
  - Installing urllib3 (1.25.9)
  - Installing zict (2.0.0)
  - Skipping atomicwrites (1.4.0) Not needed for the current environment
  - Installing attrs (19.3.0)
  - Skipping colorama (0.4.3) Not needed for the current environment
  - Installing distributed (2.18.0)
  - Installing more-itertools (8.3.0)
  - Installing packaging (20.4)
  - Installing pluggy (0.13.1)
  - Installing py (1.8.1)
  - Installing requests (2.23.0)
  - Installing scikit-learn (0.23.1)
  - Installing statsmodels (0.11.1)
  - Installing tqdm (4.46.1)
  - Installing wcwidth (0.2.4)
  - Installing pytest (5.4.3)
  - Installing tsfresh (0.16.0)
  - Installing test_proj2 (0.1.0)

update

Updating dependencies
Resolving dependencies...
   1: fact: test-proj2 is 0.1.0
   1: derived: test-proj2
   1: fact: test-proj2 depends on tsfresh (0.16.0)
   1: fact: test-proj2 depends on pytest (^5.2)
   1: fact: test-proj2 depends on pytest (^5.2)
   1: selecting test-proj2 (0.1.0)
   1: derived: pytest (^5.2)
   1: derived: tsfresh (0.16.0)
PyPI: 15 packages found for pytest >=5.2,<6.0
   1: fact: pytest (5.4.3) depends on py (>=1.5.0)
   1: fact: pytest (5.4.3) depends on packaging (*)
   1: fact: pytest (5.4.3) depends on attrs (>=17.4.0)
   1: fact: pytest (5.4.3) depends on more-itertools (>=4.0.0)
   1: fact: pytest (5.4.3) depends on pluggy (>=0.12,<1.0)
   1: fact: pytest (5.4.3) depends on wcwidth (*)
   1: fact: pytest (5.4.3) depends on importlib-metadata (>=0.12)
   1: fact: pytest (5.4.3) depends on atomicwrites (>=1.0)
   1: fact: pytest (5.4.3) depends on colorama (*)
   1: selecting pytest (5.4.3)
   1: derived: colorama (*)
   1: derived: atomicwrites (>=1.0)
   1: derived: importlib-metadata (>=0.12)
   1: derived: wcwidth (*)
   1: derived: pluggy (>=0.12,<1.0)
   1: derived: more-itertools (>=4.0.0)
   1: derived: attrs (>=17.4.0)
   1: derived: packaging (*)
   1: derived: py (>=1.5.0)
PyPI: No release information found for tsfresh-0.2.0, skipping
PyPI: 1 packages found for tsfresh 0.16.0
   1: fact: tsfresh (0.16.0) depends on requests (>=2.9.1)
   1: fact: tsfresh (0.16.0) depends on numpy (>=1.15.1)
   1: fact: tsfresh (0.16.0) depends on pandas (>=0.20.3,<0.24.0 || >=0.25.0)
   1: fact: tsfresh (0.16.0) depends on scipy (>=1.2.0)
   1: fact: tsfresh (0.16.0) depends on statsmodels (>=0.8.0)
   1: fact: tsfresh (0.16.0) depends on patsy (>=0.4.1)
   1: fact: tsfresh (0.16.0) depends on scikit-learn (>=0.19.0)
   1: fact: tsfresh (0.16.0) depends on tqdm (>=4.10.0)
   1: fact: tsfresh (0.16.0) depends on dask (>=0.15.2)
   1: fact: tsfresh (0.16.0) depends on distributed (>=1.18.3)
   1: selecting tsfresh (0.16.0)
   1: derived: distributed (>=1.18.3)
   1: derived: dask (>=0.15.2)
   1: derived: tqdm (>=4.10.0)
   1: derived: scikit-learn (>=0.19.0)
   1: derived: patsy (>=0.4.1)
   1: derived: statsmodels (>=0.8.0)
   1: derived: scipy (>=1.2.0)
   1: derived: pandas (>=0.20.3,<0.24.0 || >=0.25.0)
   1: derived: numpy (>=1.15.1)
   1: derived: requests (>=2.9.1)
PyPI: 41 packages found for colorama *
   1: selecting colorama (0.4.3)
PyPI: 7 packages found for atomicwrites >=1.0
   1: selecting atomicwrites (1.4.0)
PyPI: 25 packages found for importlib-metadata >=0.12
   1: fact: importlib-metadata (1.6.1) depends on zipp (>=0.5)
   1: selecting importlib-metadata (1.6.1)
   1: derived: zipp (>=0.5)
PyPI: 16 packages found for wcwidth *
   1: selecting wcwidth (0.2.4)
PyPI: 3 packages found for pluggy >=0.12,<1.0
   1: fact: pluggy (0.13.1) depends on importlib-metadata (>=0.12)
   1: selecting pluggy (0.13.1)
PyPI: 16 packages found for more-itertools >=4.0.0
   1: selecting more-itertools (8.3.0)
PyPI: 6 packages found for attrs >=17.4.0
   1: selecting attrs (19.3.0)
PyPI: 30 packages found for packaging *
   1: fact: packaging (20.4) depends on pyparsing (>=2.0.2)
   1: fact: packaging (20.4) depends on six (*)
   1: selecting packaging (20.4)
   1: derived: six (*)
   1: derived: pyparsing (>=2.0.2)
PyPI: No release information found for py-0.8.0-alpha2, skipping
PyPI: No release information found for py-0.9.0, skipping
PyPI: No release information found for py-1.4.32.dev1, skipping
PyPI: 8 packages found for py >=1.5.0
   1: selecting py (1.8.1)
PyPI: 65 packages found for distributed >=1.18.3
   0: Duplicate dependencies for tornado
   0: Different requirements found for tornado (>=5) and tornado (>=6.0.3).
   1: Version solving took 0.173 seconds.
   1: Tried 1 solutions.
   0: Retrying dependency resolution for Python (>=3.7,<3.8).
   1: fact: test-proj2 is 0.1.0
   1: derived: test-proj2
   1: fact: test-proj2 depends on tsfresh (0.16.0)
   1: fact: test-proj2 depends on pytest (^5.2)
   1: fact: test-proj2 depends on pytest (^5.2)
   1: selecting test-proj2 (0.1.0)
   1: derived: pytest (^5.2)
   1: derived: tsfresh (0.16.0)
   1: fact: pytest (5.4.3) depends on py (>=1.5.0)
   1: fact: pytest (5.4.3) depends on packaging (*)
   1: fact: pytest (5.4.3) depends on attrs (>=17.4.0)
   1: fact: pytest (5.4.3) depends on more-itertools (>=4.0.0)
   1: fact: pytest (5.4.3) depends on pluggy (>=0.12,<1.0)
   1: fact: pytest (5.4.3) depends on wcwidth (*)
   1: fact: pytest (5.4.3) depends on importlib-metadata (>=0.12)
   1: fact: pytest (5.4.3) depends on atomicwrites (>=1.0)
   1: fact: pytest (5.4.3) depends on colorama (*)
   1: selecting pytest (5.4.3)
   1: derived: colorama (*)
   1: derived: atomicwrites (>=1.0)
   1: derived: importlib-metadata (>=0.12)
   1: derived: wcwidth (*)
   1: derived: pluggy (>=0.12,<1.0)
   1: derived: more-itertools (>=4.0.0)
   1: derived: attrs (>=17.4.0)
   1: derived: packaging (*)
   1: derived: py (>=1.5.0)
   1: fact: tsfresh (0.16.0) depends on requests (>=2.9.1)
   1: fact: tsfresh (0.16.0) depends on numpy (>=1.15.1)
   1: fact: tsfresh (0.16.0) depends on pandas (>=0.20.3,<0.24.0 || >=0.25.0)
   1: fact: tsfresh (0.16.0) depends on scipy (>=1.2.0)
   1: fact: tsfresh (0.16.0) depends on statsmodels (>=0.8.0)
   1: fact: tsfresh (0.16.0) depends on patsy (>=0.4.1)
   1: fact: tsfresh (0.16.0) depends on scikit-learn (>=0.19.0)
   1: fact: tsfresh (0.16.0) depends on tqdm (>=4.10.0)
   1: fact: tsfresh (0.16.0) depends on dask (>=0.15.2)
   1: fact: tsfresh (0.16.0) depends on distributed (>=1.18.3)
   1: selecting tsfresh (0.16.0)
   1: derived: distributed (>=1.18.3)
   1: derived: dask (>=0.15.2)
   1: derived: tqdm (>=4.10.0)
   1: derived: scikit-learn (>=0.19.0)
   1: derived: patsy (>=0.4.1)
   1: derived: statsmodels (>=0.8.0)
   1: derived: scipy (>=1.2.0)
   1: derived: pandas (>=0.20.3,<0.24.0 || >=0.25.0)
   1: derived: numpy (>=1.15.1)
   1: derived: requests (>=2.9.1)
   1: selecting colorama (0.4.3)
   1: selecting atomicwrites (1.4.0)
   1: fact: importlib-metadata (1.6.1) depends on zipp (>=0.5)
   1: selecting importlib-metadata (1.6.1)
   1: derived: zipp (>=0.5)
   1: selecting wcwidth (0.2.4)
   1: fact: pluggy (0.13.1) depends on importlib-metadata (>=0.12)
   1: selecting pluggy (0.13.1)
   1: selecting more-itertools (8.3.0)
   1: selecting attrs (19.3.0)
   1: fact: packaging (20.4) depends on pyparsing (>=2.0.2)
   1: fact: packaging (20.4) depends on six (*)
   1: selecting packaging (20.4)
   1: derived: six (*)
   1: derived: pyparsing (>=2.0.2)
   1: selecting py (1.8.1)
   1: fact: distributed (2.18.0) depends on click (>=6.6)
   1: fact: distributed (2.18.0) depends on cloudpickle (>=1.3.0)
   1: fact: distributed (2.18.0) depends on dask (>=2.9.0)
   1: fact: distributed (2.18.0) depends on msgpack (>=0.6.0)
   1: fact: distributed (2.18.0) depends on psutil (>=5.0)
   1: fact: distributed (2.18.0) depends on sortedcontainers (<2.0.0 || >2.0.0,<2.0.1 || >2.0.1)
   1: fact: distributed (2.18.0) depends on tblib (>=1.6.0)
   1: fact: distributed (2.18.0) depends on toolz (>=0.8.2)
   1: fact: distributed (2.18.0) depends on zict (>=0.1.3)
   1: fact: distributed (2.18.0) depends on pyyaml (*)
   1: fact: distributed (2.18.0) depends on tornado (>=5)
   1: selecting distributed (2.18.0)
   1: derived: tornado (>=5)
   1: derived: pyyaml (*)
   1: derived: zict (>=0.1.3)
   1: derived: toolz (>=0.8.2)
   1: derived: tblib (>=1.6.0)
   1: derived: sortedcontainers (<2.0.0 || >2.0.0,<2.0.1 || >2.0.1)
   1: derived: psutil (>=5.0)
   1: derived: msgpack (>=0.6.0)
   1: derived: dask (>=2.9.0)
   1: derived: cloudpickle (>=1.3.0)
   1: derived: click (>=6.6)
PyPI: 16 packages found for dask >=2.9.0
-->1: fact: dask (2.18.1) depends on pyyaml (*)  # not here the optional dependencies for "dataframe" are not found
   1: selecting dask (2.18.1)
PyPI: No release information found for tqdm-2.0.0.dev0, skipping
PyPI: 64 packages found for tqdm >=4.10.0
   1: selecting tqdm (4.46.1)
PyPI: No release information found for scikit-learn-0.14a1, skipping
PyPI: 18 packages found for scikit-learn >=0.19.0
   1: fact: scikit-learn (0.23.1) depends on numpy (>=1.13.3)
   1: fact: scikit-learn (0.23.1) depends on scipy (>=0.19.1)
   1: fact: scikit-learn (0.23.1) depends on joblib (>=0.11)
   1: fact: scikit-learn (0.23.1) depends on threadpoolctl (>=2.0.0)
   1: selecting scikit-learn (0.23.1)
   1: derived: threadpoolctl (>=2.0.0)
   1: derived: joblib (>=0.11)
PyPI: 3 packages found for patsy >=0.4.1
   1: fact: patsy (0.5.1) depends on six (*)
   1: fact: patsy (0.5.1) depends on numpy (>=1.4)
   1: selecting patsy (0.5.1)
PyPI: No release information found for statsmodels-0.4.0rc2, skipping
PyPI: 7 packages found for statsmodels >=0.8.0
   1: fact: statsmodels (0.11.1) depends on numpy (>=1.14)
   1: fact: statsmodels (0.11.1) depends on scipy (>=1.0)
   1: fact: statsmodels (0.11.1) depends on pandas (>=0.21)
   1: fact: statsmodels (0.11.1) depends on patsy (>=0.5)
   1: selecting statsmodels (0.11.1)
   1: derived: pandas (>=0.21)
PyPI: No release information found for scipy-0.4.4, skipping
PyPI: No release information found for scipy-0.5.2, skipping
PyPI: No release information found for scipy-0.6.0, skipping
PyPI: No release information found for scipy-0.7.0, skipping
PyPI: No release information found for scipy-0.7.2, skipping
PyPI: 10 packages found for scipy >=1.2.0
   1: fact: scipy (1.4.1) depends on numpy (>=1.13.3)
   1: selecting scipy (1.4.1)
PyPI: 17 packages found for pandas >=0.21,<0.24.0 || >=0.25.0
   1: fact: pandas (1.0.4) depends on python-dateutil (>=2.6.1)
   1: fact: pandas (1.0.4) depends on pytz (>=2017.2)
   1: fact: pandas (1.0.4) depends on numpy (>=1.13.3)
   1: selecting pandas (1.0.4)
   1: derived: pytz (>=2017.2)
   1: derived: python-dateutil (>=2.6.1)
PyPI: No release information found for numpy-0.9.6, skipping
PyPI: No release information found for numpy-0.9.8, skipping
PyPI: No release information found for numpy-1.0.3, skipping
PyPI: No release information found for numpy-1.0.4, skipping
PyPI: No release information found for numpy-1.0b1, skipping
PyPI: No release information found for numpy-1.0b4, skipping
PyPI: No release information found for numpy-1.0b5, skipping
PyPI: No release information found for numpy-1.0rc1, skipping
PyPI: No release information found for numpy-1.0rc2, skipping
PyPI: No release information found for numpy-1.0rc3, skipping
PyPI: No release information found for numpy-1.1.1, skipping
PyPI: No release information found for numpy-1.2.0, skipping
PyPI: No release information found for numpy-1.2.1, skipping
PyPI: No release information found for numpy-1.4.0, skipping
PyPI: 23 packages found for numpy >=1.15.1
   1: selecting numpy (1.18.5)
PyPI: No release information found for requests-0.0.1, skipping
PyPI: No release information found for requests-0.12.01, skipping
PyPI: No release information found for requests-2.15.0, skipping
PyPI: 38 packages found for requests >=2.9.1
   1: fact: requests (2.23.0) depends on chardet (>=3.0.2,<4)
   1: fact: requests (2.23.0) depends on idna (>=2.5,<3)
   1: fact: requests (2.23.0) depends on urllib3 (>=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26)
   1: fact: requests (2.23.0) depends on certifi (>=2017.4.17)
   1: selecting requests (2.23.0)
   1: derived: certifi (>=2017.4.17)
   1: derived: urllib3 (>=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26)
   1: derived: idna (>=2.5,<3)
   1: derived: chardet (>=3.0.2,<4)
PyPI: 15 packages found for zipp >=0.5
   1: selecting zipp (3.1.0)
PyPI: 26 packages found for six *
   1: selecting six (1.15.0)
PyPI: No release information found for pyparsing-1.1.2, skipping
PyPI: No release information found for pyparsing-1.2, skipping
PyPI: No release information found for pyparsing-1.3.3, skipping
PyPI: 30 packages found for pyparsing >=2.0.2
   1: selecting pyparsing (2.4.7)
PyPI: 10 packages found for tornado >=5
   1: selecting tornado (6.0.4)
PyPI: No release information found for pyyaml-3.01, skipping
PyPI: No release information found for pyyaml-3.02, skipping
PyPI: No release information found for pyyaml-3.03, skipping
PyPI: No release information found for pyyaml-3.04, skipping
PyPI: No release information found for pyyaml-3.05, skipping
PyPI: No release information found for pyyaml-3.06, skipping
PyPI: No release information found for pyyaml-3.07, skipping
PyPI: No release information found for pyyaml-3.08, skipping
PyPI: No release information found for pyyaml-3.09, skipping
PyPI: 10 packages found for pyyaml *
   1: selecting pyyaml (5.3.1)
PyPI: 4 packages found for zict >=0.1.3
   1: fact: zict (2.0.0) depends on heapdict (*)
   1: selecting zict (2.0.0)
   1: derived: heapdict (*)
PyPI: 3 packages found for toolz >=0.8.2
   1: selecting toolz (0.10.0)
PyPI: No release information found for tblib-0.0.1, skipping
PyPI: No release information found for tblib-0.1, skipping
PyPI: 1 packages found for tblib >=1.6.0
   1: selecting tblib (1.6.0)
PyPI: 36 packages found for sortedcontainers <2.0.0 || >2.0.0,<2.0.1 || >2.0.1
   1: selecting sortedcontainers (2.2.2)
PyPI: No release information found for psutil-0.1.0, skipping
PyPI: No release information found for psutil-3.4.0, skipping
PyPI: 31 packages found for psutil >=5.0
   1: selecting psutil (5.7.0)
PyPI: 4 packages found for msgpack >=0.6.0
   1: selecting msgpack (1.0.0)
PyPI: No release information found for cloudpickle-0.2.0, skipping
PyPI: 3 packages found for cloudpickle >=1.3.0
   1: selecting cloudpickle (1.4.1)
PyPI: 6 packages found for click >=6.6
   1: selecting click (7.1.2)
PyPI: 2 packages found for threadpoolctl >=2.0.0
   1: selecting threadpoolctl (2.1.0)
PyPI: No release information found for joblib-0.1a, skipping
PyPI: No release information found for joblib-0.3.2d, skipping
PyPI: No release information found for joblib-0.3.2f, skipping
PyPI: 14 packages found for joblib >=0.11
   1: selecting joblib (0.15.1)
PyPI: 12 packages found for pytz >=2017.2
   1: selecting pytz (2020.1)
PyPI: No release information found for python-dateutil-0.1, skipping
PyPI: No release information found for python-dateutil-0.3, skipping
PyPI: No release information found for python-dateutil-0.4, skipping
PyPI: No release information found for python-dateutil-0.5, skipping
PyPI: No release information found for python-dateutil-1.0, skipping
PyPI: No release information found for python-dateutil-1.1, skipping
PyPI: No release information found for python-dateutil-1.2, skipping
PyPI: No release information found for python-dateutil-2.0, skipping
PyPI: 9 packages found for python-dateutil >=2.6.1
   1: fact: python-dateutil (2.8.1) depends on six (>=1.5)
   1: selecting python-dateutil (2.8.1)
PyPI: No release information found for certifi-0, skipping
PyPI: 17 packages found for certifi >=2017.4.17
   1: selecting certifi (2020.4.5.2)
PyPI: No release information found for urllib3-0.3, skipping
PyPI: No release information found for urllib3-0.3.1, skipping
PyPI: No release information found for urllib3-0.4.0, skipping
PyPI: No release information found for urllib3-0.4.1, skipping
PyPI: 15 packages found for urllib3 >=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26
   1: selecting urllib3 (1.25.9)
PyPI: No release information found for idna-0.1, skipping
PyPI: 5 packages found for idna >=2.5,<3
   1: selecting idna (2.9)
PyPI: 3 packages found for chardet >=3.0.2,<4
   1: selecting chardet (3.0.4)
PyPI: 7 packages found for heapdict *
   1: selecting heapdict (1.0.1)
   1: Version solving took 0.518 seconds.
   1: Tried 1 solutions.
   0: Retrying dependency resolution for Python (>=3.8,<4.0).
   1: fact: test-proj2 is 0.1.0
   1: derived: test-proj2
   1: fact: test-proj2 depends on tsfresh (0.16.0)
   1: fact: test-proj2 depends on pytest (^5.2)
   1: fact: test-proj2 depends on pytest (^5.2)
   1: selecting test-proj2 (0.1.0)
   1: derived: pytest (^5.2)
   1: derived: tsfresh (0.16.0)
   1: fact: pytest (5.4.3) depends on py (>=1.5.0)
   1: fact: pytest (5.4.3) depends on packaging (*)
   1: fact: pytest (5.4.3) depends on attrs (>=17.4.0)
   1: fact: pytest (5.4.3) depends on more-itertools (>=4.0.0)
   1: fact: pytest (5.4.3) depends on pluggy (>=0.12,<1.0)
   1: fact: pytest (5.4.3) depends on wcwidth (*)
   1: fact: pytest (5.4.3) depends on atomicwrites (>=1.0)
   1: fact: pytest (5.4.3) depends on colorama (*)
   1: selecting pytest (5.4.3)
   1: derived: colorama (*)
   1: derived: atomicwrites (>=1.0)
   1: derived: wcwidth (*)
   1: derived: pluggy (>=0.12,<1.0)
   1: derived: more-itertools (>=4.0.0)
   1: derived: attrs (>=17.4.0)
   1: derived: packaging (*)
   1: derived: py (>=1.5.0)
   1: fact: tsfresh (0.16.0) depends on requests (>=2.9.1)
   1: fact: tsfresh (0.16.0) depends on numpy (>=1.15.1)
   1: fact: tsfresh (0.16.0) depends on pandas (>=0.20.3,<0.24.0 || >=0.25.0)
   1: fact: tsfresh (0.16.0) depends on scipy (>=1.2.0)
   1: fact: tsfresh (0.16.0) depends on statsmodels (>=0.8.0)
   1: fact: tsfresh (0.16.0) depends on patsy (>=0.4.1)
   1: fact: tsfresh (0.16.0) depends on scikit-learn (>=0.19.0)
   1: fact: tsfresh (0.16.0) depends on tqdm (>=4.10.0)
   1: fact: tsfresh (0.16.0) depends on dask (>=0.15.2)
   1: fact: tsfresh (0.16.0) depends on distributed (>=1.18.3)
   1: selecting tsfresh (0.16.0)
   1: derived: distributed (>=1.18.3)
   1: derived: dask (>=0.15.2)
   1: derived: tqdm (>=4.10.0)
   1: derived: scikit-learn (>=0.19.0)
   1: derived: patsy (>=0.4.1)
   1: derived: statsmodels (>=0.8.0)
   1: derived: scipy (>=1.2.0)
   1: derived: pandas (>=0.20.3,<0.24.0 || >=0.25.0)
   1: derived: numpy (>=1.15.1)
   1: derived: requests (>=2.9.1)
   1: selecting colorama (0.4.3)
   1: selecting atomicwrites (1.4.0)
   1: selecting wcwidth (0.2.4)
   1: selecting pluggy (0.13.1)
   1: selecting more-itertools (8.3.0)
   1: selecting attrs (19.3.0)
   1: fact: packaging (20.4) depends on pyparsing (>=2.0.2)
   1: fact: packaging (20.4) depends on six (*)
   1: selecting packaging (20.4)
   1: derived: six (*)
   1: derived: pyparsing (>=2.0.2)
   1: selecting py (1.8.1)
   1: fact: distributed (2.18.0) depends on click (>=6.6)
   1: fact: distributed (2.18.0) depends on cloudpickle (>=1.3.0)
   1: fact: distributed (2.18.0) depends on dask (>=2.9.0)
   1: fact: distributed (2.18.0) depends on msgpack (>=0.6.0)
   1: fact: distributed (2.18.0) depends on psutil (>=5.0)
   1: fact: distributed (2.18.0) depends on sortedcontainers (<2.0.0 || >2.0.0,<2.0.1 || >2.0.1)
   1: fact: distributed (2.18.0) depends on tblib (>=1.6.0)
   1: fact: distributed (2.18.0) depends on toolz (>=0.8.2)
   1: fact: distributed (2.18.0) depends on zict (>=0.1.3)
   1: fact: distributed (2.18.0) depends on pyyaml (*)
   1: fact: distributed (2.18.0) depends on tornado (>=6.0.3)
   1: selecting distributed (2.18.0)
   1: derived: tornado (>=6.0.3)
   1: derived: pyyaml (*)
   1: derived: zict (>=0.1.3)
   1: derived: toolz (>=0.8.2)
   1: derived: tblib (>=1.6.0)
   1: derived: sortedcontainers (<2.0.0 || >2.0.0,<2.0.1 || >2.0.1)
   1: derived: psutil (>=5.0)
   1: derived: msgpack (>=0.6.0)
   1: derived: dask (>=2.9.0)
   1: derived: cloudpickle (>=1.3.0)
   1: derived: click (>=6.6)
   1: fact: dask (2.18.1) depends on pyyaml (*)
   1: selecting dask (2.18.1)
   1: selecting tqdm (4.46.1)
   1: fact: scikit-learn (0.23.1) depends on numpy (>=1.13.3)
   1: fact: scikit-learn (0.23.1) depends on scipy (>=0.19.1)
   1: fact: scikit-learn (0.23.1) depends on joblib (>=0.11)
   1: fact: scikit-learn (0.23.1) depends on threadpoolctl (>=2.0.0)
   1: selecting scikit-learn (0.23.1)
   1: derived: threadpoolctl (>=2.0.0)
   1: derived: joblib (>=0.11)
   1: fact: patsy (0.5.1) depends on six (*)
   1: fact: patsy (0.5.1) depends on numpy (>=1.4)
   1: selecting patsy (0.5.1)
   1: fact: statsmodels (0.11.1) depends on numpy (>=1.14)
   1: fact: statsmodels (0.11.1) depends on scipy (>=1.0)
   1: fact: statsmodels (0.11.1) depends on pandas (>=0.21)
   1: fact: statsmodels (0.11.1) depends on patsy (>=0.5)
   1: selecting statsmodels (0.11.1)
   1: derived: pandas (>=0.21)
   1: fact: scipy (1.4.1) depends on numpy (>=1.13.3)
   1: selecting scipy (1.4.1)
   1: fact: pandas (1.0.4) depends on python-dateutil (>=2.6.1)
   1: fact: pandas (1.0.4) depends on pytz (>=2017.2)
   1: fact: pandas (1.0.4) depends on numpy (>=1.13.3)
   1: selecting pandas (1.0.4)
   1: derived: pytz (>=2017.2)
   1: derived: python-dateutil (>=2.6.1)
   1: selecting numpy (1.18.5)
   1: fact: requests (2.23.0) depends on chardet (>=3.0.2,<4)
   1: fact: requests (2.23.0) depends on idna (>=2.5,<3)
   1: fact: requests (2.23.0) depends on urllib3 (>=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26)
   1: fact: requests (2.23.0) depends on certifi (>=2017.4.17)
   1: selecting requests (2.23.0)
   1: derived: certifi (>=2017.4.17)
   1: derived: urllib3 (>=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26)
   1: derived: idna (>=2.5,<3)
   1: derived: chardet (>=3.0.2,<4)
   1: selecting six (1.15.0)
   1: selecting pyparsing (2.4.7)
   1: selecting tornado (6.0.4)
   1: selecting pyyaml (5.3.1)
   1: fact: zict (2.0.0) depends on heapdict (*)
   1: selecting zict (2.0.0)
   1: derived: heapdict (*)
   1: selecting toolz (0.10.0)
   1: selecting tblib (1.6.0)
   1: selecting sortedcontainers (2.2.2)
   1: selecting psutil (5.7.0)
   1: selecting msgpack (1.0.0)
   1: selecting cloudpickle (1.4.1)
   1: selecting click (7.1.2)
   1: selecting threadpoolctl (2.1.0)
   1: selecting joblib (0.15.1)
   1: selecting pytz (2020.1)
   1: fact: python-dateutil (2.8.1) depends on six (>=1.5)
   1: selecting python-dateutil (2.8.1)
   1: selecting certifi (2020.4.5.2)
   1: selecting urllib3 (1.25.9)
   1: selecting idna (2.9)
   1: selecting chardet (3.0.4)
   1: selecting heapdict (1.0.1)
   1: Version solving took 0.207 seconds.
   1: Tried 1 solutions.
   0: Complete version solving took 0.995 seconds for 2 branches
   0: Resolved for branches: (>=3.7,<3.8), (>=3.8,<4.0)

Writing lock file


Package operations: 0 installs, 0 updates, 3 removals

  - Removing fsspec (0.7.4)
  - Removing locket (0.2.0)
  - Removing partd (1.1.0)

Activity

  1. ghost added
    kind/bugSomething isn't working as expected
    on Jun 11, 2020
  2. ghost added
    status/triageThis issue needs to be triaged
    on Jun 11, 2020
  3. ghost changed the title [-]Resolver fails to keep 2nd level dependencies that use "extra" when performing "update"[/-] [+]Resolver fails to keep 2nd level dependencies that use optional packages when performing "update"[/+] on Jun 11, 2020
  4. hauntsaninja commented on Jun 18, 2020

    @hauntsaninja
    Contributor

    This issue affected me as well!

    Details

    If my project depends on A, which depends on B[plus_some_extras] and I add B as a dependency for my project, we no longer install the needed extras.

    Note in the following that google-cloud-firestore depends on google-api-core[grpc] (https://github.com/googleapis/python-firestore/blob/b1c5987c606a14874b412e70f93015e161e278d6/setup.py#L28)

    ~/tmp/repro λ cat pyproject.toml
    [tool.poetry]
    name = "repro"
    version = "0.1.0"
    description = ""
    authors = ["Your Name <you@example.com>"]
    
    [tool.poetry.dependencies]
    python = "^3.8"
    google-cloud-firestore = ">1.5"
    
    [tool.poetry.dev-dependencies]
    
    [build-system]
    requires = ["poetry>=0.12"]
    build-backend = "poetry.masonry.api"
    ~/tmp/repro λ poetry install                                    
    Creating virtualenv repro-fvI6nE08-py3.8 in /Users/shantanu/Library/Caches/pypoetry/virtualenvs
    Updating dependencies
    Resolving dependencies... (0.3s)
    
    Writing lock file
    
    
    Package operations: 18 installs, 0 updates, 0 removals
    
      - Installing pyasn1 (0.4.8)
      - Installing six (1.15.0)
      - Installing cachetools (4.1.0)
      - Installing certifi (2020.4.5.2)
      - Installing chardet (3.0.4)
      - Installing idna (2.9)
      - Installing protobuf (3.12.2)
      - Installing pyasn1-modules (0.2.8)
      - Installing rsa (4.6)
      - Installing urllib3 (1.25.9)
      - Installing google-auth (1.17.2)
      - Installing googleapis-common-protos (1.52.0)
      - Installing pytz (2020.1)
      - Installing requests (2.24.0)
      - Installing google-api-core (1.20.1)
      - Installing grpcio (1.29.0)
      - Installing google-cloud-core (1.3.0)
      - Installing google-cloud-firestore (1.7.0)
    ~/tmp/repro λ poetry export -f requirements.txt | grep grpc -C 2
        --hash=sha256:560716c807117394da12cecb0a54da5a451b5cf9866f1d37e9a5e2329a665351 \
        --hash=sha256:c8961760f5aad9a711d37b675be103e0cc4e9a39327e0d6d857872f698403e24
    grpcio==1.29.0 \
        --hash=sha256:e90f3d11185c36593186e5ff1f581acc6ddfa4190f145b0366e579de1f52803b \
        --hash=sha256:5024b26e17a1bfc9390fb3b8077bf886eee02970af780fd23072970ef08cefe8 \
    ~/tmp/repro λ poetry run python -c 'import grpc'                
    ~/tmp/repro λ 
    ~/tmp/repro λ 
    ~/tmp/repro λ 
    ~/tmp/repro λ 
    ~/tmp/repro λ poetry add google-api-core        
    Using version ^1.20.1 for google-api-core
    
    Updating dependencies
    Resolving dependencies... (0.1s)
    
    Writing lock file
    
    
    Package operations: 0 installs, 0 updates, 1 removal
    
      - Removing grpcio (1.29.0)
    
  5. therefromhere commented on Jun 22, 2020

    @therefromhere

    I'm hitting this in a very similar situation to @hauntsaninja , also with grpcio being the affected package, though note that in both my and their case this only involves the poetry add command, not update as per the OP.

    My case is, adding firebase-admin to an empty Poetry project adds the necessary dependencies, including grpcio.

    If I then add google-cloud-logging, it incorrectly removes grpcio.

    For what it's worth both packages have google-api-core[grpc] in their install_requires.

    https://github.com/firebase/firebase-admin-python/blob/f43e6876684d2c7e9acf5b0b013642b44883c63a/setup.py#L41

    https://github.com/googleapis/python-logging/blob/6dde25ef6f279947cd55a8a3b7300ae1f84afa4e/setup.py#L32

    To reproduce:

    • Create a new directory
    • poetry init , accept all defaults
    • poetry add firebase-admin - note that grpcio is installed
    • poetry add google-cloud-logging - note that grpcio is incorrectly removed.

    This is with:

    poetry==1.0.9
    python==3.7.7 (set using pyenv local 3.7.7)
    firebase-admin==4.3.0
    google-cloud-logging==1.15.0

  6. Shawe82 commented on Jul 17, 2020

    @Shawe82

    I can also confirm that and I agree this is a major issue.

  7. abn commented on Aug 12, 2020

    @abn
    Member

    Could be a duplicate of #1609

  8. louwers commented on Aug 19, 2020

    @louwers

    We are affected by this as well.

  9. alexj-novisto commented on Aug 24, 2020

    @alexj-novisto

    We've also been affected by this. Loss of time + now having to circumvent the issue.

  10. added this to the 1.1 milestone on Sep 3, 2020
  11. hauntsaninja commented on Sep 17, 2020

    @hauntsaninja
    Contributor

    Thank you for fixing this! Looking at those PRs, I'm glad I gave up on trying to fix this myself :-)

  12. abn commented on Oct 13, 2020

    @abn
    Member

    @vbersier Can you please try the fix at #3147.

    Using pipx

    pipx install --suffix=@3147 'poetry @ git+https://github.com/python-poetry/poetry.git@refs/pull/3147/head'

    Using a container (podman | docker)

    podman run --rm -i --entrypoint bash python:3.8 <<EOF
    set -e
    python -m pip install -q git+https://github.com/python-poetry/poetry.git@refs/pull/3147/head
    python -m poetry new foobar
    pushd foobar
    sed -i /pytest/d pyproject.toml
    python -m poetry add tsfresh
    python -m poetry run python -c ​'​from dask import dataframe​'​
    EOF
  13. saskenuba commented on Oct 14, 2020

    @saskenuba

    This also fixes my very weird 2nd level dependencies error. Thanks, hope it gets released soon, wasted a night trying to debug it :(

  14. github-actions commented on Mar 2, 2024

    @github-actions

    This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

  15. locked as resolved and limited conversation to collaborators on Mar 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/solverRelated to the dependency resolverkind/bugSomething isn't working as expected

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions