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

  • 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:

https://github.com/python-poetry/poetry/issues/2300 https://github.com/python-poetry/poetry/issues/2494 https://github.com/python-poetry/poetry/issues/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)

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 5
  • Comments: 17 (4 by maintainers)

Most upvoted comments

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

Could @sdispater or @finswimmer drop by to confirm this is acknowledged and will be worked on? It’s a major bug that affects dependency resolution and which packages are installed, and one that has been apparently present for quite some time.

This issue affected me as well!

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)

@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

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

We are affected by this as well.

Could be a duplicate of #1609