curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python
pip freeze > requirements.txt
pip install boto3
pip install jmespath==0.7.0
poetry show --tree
boto3 1.9.119 The AWS SDK for Python
├── botocore >=1.12.119,<1.13.0
│ ├── docutils >=0.10
│ ├── jmespath >=0.7.1,<1.0.0
│ ├── python-dateutil >=2.1,<3.0.0
│ │ └── six >=1.5
│ └── urllib3 >=1.20,<1.25
├── jmespath >=0.7.1,<1.0.0
└── s3transfer >=0.2.0,<0.3.0
└── botocore >=1.12.36,<2.0.0
├── docutils >=0.10
├── jmespath >=0.7.1,<1.0.0
├── python-dateutil >=2.1,<3.0.0
│ └── six >=1.5
└── urllib3 >=1.20,<1.25
Now let's add
jmespath = "0.7"
to pyproject.toml and try to lock
$ poetry lock
Updating dependencies
Resolving dependencies... (109.0s)
...(eventually)...
[SolverProblemError]
And because boto3 (1.9.121)
depends on jmespath (>=0.7.1,<1.0.0)
and boto3 (1.9.122)
depends on jmespath (>=0.7.1,<1.0.0),
boto3 (>=1.9,<2.0) requires jmespath (>=0.7.1,<1.0.0).
So, because cron-csv depends on both boto3
(^1.9) and jmespath (0.7),
version solving failed.
$ poetry show
boto3 1.9.119 The AWS SDK for Python
botocore 1.12.119 Low-level, data-driven core of boto 3.
...
$ poetry show boto3 --tree
boto3 1.9.119 The AWS SDK for Python
├── botocore >=1.12.119,<1.13.0
│ ├── docutils >=0.10
│ ├── jmespath >=0.7.1,<1.0.0
│ ├── python-dateutil >=2.1,<3.0.0
│ │ └── six >=1.5
│ └── urllib3 >=1.20,<1.25
├── jmespath >=0.7.1,<1.0.0
└── s3transfer >=0.2.0,<0.3.0
└── botocore >=1.12.36,<2.0.0
├── docutils >=0.10
├── jmespath >=0.7.1,<1.0.0
├── python-dateutil >=2.1,<3.0.0
│ └── six >=1.5
└── urllib3 >=1.20,<1.25