Skip to content

poetry lock --no-update crashes with assert on Content-Length when Lazy Wheel is True  #9068

@mshonichev

Description

@mshonichev

Description

Turning `solver.lazy-wheel` setting to True by default kills us two days of testing.

Our setup includes public PyPI mirror at self-hosted Artifactory proxy 7.68.

Upon upgrading to poetry 1.8.1, our CI immediately had started failing with following stack trace at running `poetry lock --no-update` command:


16:59:08  Resolving dependencies...
16:59:09  
16:59:09    ValueError
16:59:09  
16:59:09    Package('docker', '7.0.0') is not in list
16:59:09  
16:59:09    at ~/.local/lib/python3.11/site-packages/poetry/repositories/legacy_repository.py:66 in package
16:59:09         62│         Note that this will be cached so the subsequent operations
16:59:09         63│         should be much faster.
16:59:09         64│         """
16:59:09         65│         try:
16:59:09      →  66│             index = self._packages.index(Package(name, version))
16:59:09         67│ 
16:59:09         68│             return self._packages[index]
16:59:09         69│         except ValueError:
16:59:09         70│             package = super().package(name, version, extras)
16:59:09  
16:59:09  The following error occurred when trying to handle this error:
16:59:09  
16:59:09  
16:59:09    AssertionError
16:59:09  
16:59:09    
16:59:09  
16:59:09    at ~/.local/lib/python3.11/site-packages/poetry/inspection/lazy_wheel.py:410 in _stream_response
16:59:09        406│         logger.debug("streamed bytes request: %s", headers["Range"])
16:59:09        407│         self._request_count += 1
16:59:09        408│         response = self._session.get(self._url, headers=headers, stream=True)
16:59:09        409│         response.raise_for_status()
16:59:09      → 410│         assert int(response.headers["Content-Length"]) == (end - start + 1)
16:59:09        411│         return response
16:59:09        412│ 
16:59:09        413│     def _fetch_content_range(self, start: int, end: int) -> Iterator[bytes]:
16:59:09        414│         """Perform a series of HTTP range requests to cover the specified byte range.

What's more annoying, the issue was either reproducing or not depending (supposedly) on state of local poetry download caches. E.g. it might lock OK at one CI agent and crash at another.

Workarounds

Either set 
  `poetry config solver.lazy-wheel false`

or downgrade to poetry 1.7.1

Poetry Installation Method

pip

Operating System

Linux

Poetry Version

1.8.1

Poetry Configuration

cache-dir = "/home/ci/.cache/pypoetry"
experimental.system-git-client = false
installer.max-workers = null
installer.modern-installation = true
installer.no-binary = null
installer.parallel = true
keyring.enabled = true
solver.lazy-wheel = true
virtualenvs.create = true
virtualenvs.in-project = null
virtualenvs.options.always-copy = false
virtualenvs.options.no-pip = false
virtualenvs.options.no-setuptools = false
virtualenvs.options.system-site-packages = false
virtualenvs.path = "{cache-dir}/virtualenvs"  # /home/ci/.cache/pypoetry/virtualenvs
virtualenvs.prefer-active-python = false
virtualenvs.prompt = "{project_name}-py{python_version}"
warnings.export = true

Python Sysconfig

n/a

Example pyproject.toml

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

[[tool.poetry.source]]
name = "internal"
url = "https://artifactory.company.com/artifactory/api/pypi/internal-packages/simple"
priority = "primary"

[[tool.poetry.source]]
name = "pypi-mirror"
url = "https://artifactory.company.com/artifactory/api/pypi/proxy-pypiorg/simple"
priority = "primary"

[tool.poetry]
name = "project"
version = "0.1.34"
description = "python project"
authors = ["Max Shonichev <[email protected]>"]
maintainers = ["Max Shonichev <[email protected]>"]
license = "Proprietary. Copyright (c), 2023."
packages = [{include = "project", from = "src"}]
repository = "https://git.company.com/projects/GIT/repos/REPO/browse/project"
include = ["project-docs/*"]
exclude = ["src/project/tasks/*"]

[tool.poetry.scripts]
project = "project.cli.main:main"

[tool.setuptools.package-data]
project = ["py.typed"]

[tool.setuptools.packages.find]
where = ["src"]


[tool.poe.poetry_hooks]
pre_build  = "pre-build"

[tool.poe.tasks.pre-build]
help = "Tasks before package build"
sequence = [ "build-docs", "zip-docs", "build-dita" ]

[tool.poe.tasks.test]
help = "Run tests"
shell = "poetry run py.test -sv --doctest-modules --rootdir=src --cov --cov-config pyproject.toml --cov-report term --alluredir allure-results"

[tool.poe.tasks.pre-commit]
help = "Run static checks"
shell = "poetry run -- pre-commit run --all-files"


[tool.poetry.dependencies]
python = "^3.10"
pydantic = "^2.5.1"
pydantic-yaml = "^1.2.1"
packaging = "^23.1"
yarl = "^1.9.2"
types-requests = "^2.31.0.6"
requests = {extras = ["security"], version = "^2.31.0"}
configparser = "^6.0.0"
urllib3 = "^2.2.0"
click = "^8.1.7"
platformdirs = "^4.1.0"


[tool.poetry.group.dev.dependencies]
# ----------------------------------
# static checks and testing subgroup
# ----------------------------------
pre-commit = "^3.3.3"
black = "^23.12.1"
isort = "^5.12.0"
pytest = "^7.4.0"
# NB: must temporary pin this due to JSON/OpenAPI inconsistencies and correlated datamodel-codegen/pydantic inconsistencies
# see https://github.com/koxudaxi/datamodel-code-generator/issues/1721
mypy = "1.6.1"
allure-pytest = "^2.13.2"
twine = "^4.0.2"
datamodel-code-generator = {version = "^0.24.2", extras = ["validation"]}
pytest-dependency = "^0.5.1"
pylama = {extras = ["pylint", "toml"], version = "^8.4.1"}
pytest-cov = "^4.1.0"
types-setuptools = "^69.1.0.0"
pytest-glamor-allure = "^0.0.10"
# ----------------------------------
# docs subgroup
# ----------------------------------
sphinx = "^7.2.6"
sphinx-click = "^5.1.0"
sphinxcontrib-mermaid = "^0.9.2"
sphinxcontrib-apidoc = "^0.4.0"
autodoc-pydantic = "^2.0.1"
sphinx-rtd-theme = "^2.0.0"
sphinx-copybutton = "^0.5.2"
myst-parser = "^2.0.0"
docker = "^7.0.0"
project-rst2dita = "^0.2.0"
covdefaults = "^2.3.0"


[tool.datamodel-codegen]
target-python-version = "3.10"                  # NB: must match [tool.poetry.dependencies] minimal python version
use-field-description = true                    # Use schema description to populate field docstring.
use-standard-collections = true                 # Use generic container types for type hinting instead of `collections.abc`.
use-union-operator = true                       # Use '|' operator for Union type (PEP 604).
use-unique-items-as-set = true                  # define field type as `set` when the field attribute has `uniqueItems`.
use-schema-description = true                   # Use schema description to populate class docstring.
use-double-quotes = true                        # Model generated with double quotes.
reuse-model = true                              # Re-use models on the field when a module has the model with the same content.
disable-warnings = true                         # Disable warnings summary.
keep-model-order = true                         # Keep generated models' order.
enable-version-header = true                    # Enable package version on file headers (it does not change yet, just for sake).
use-annotated = false                           # (Don't) Use typing.Annotated for Field().
field-constraints = true                        # Use field constraints and not con* annotations.
use-default-kwarg = true                        # Use `default=` instead of a positional argument.
remove-special-field-name-prefix = true         # Remove field name prefix if it has a special meaning e.g. underscores.
enum-field-as-literal = "all"                   # All enum field type are Literal.


[tool.pytest.ini_options]
log_cli = "true"
log_cli_level = "DEBUG"
log_file_level = "DEBUG"
log_format = "%(asctime)s [%(levelname)-8s] %(message)s"
log_date_format = "%Y-%m-%d %H:%M:%S"
log_file_format = "%(asctime)s [%(levelname)-8s] %(message)s"
markers = [
    "integration: mark a test as an integration test"
]
addopts = "--ignore tmp --ignore html --ignore project-docs --ignore dist --ignore dita"

[tool.coverage.run]
plugins = ["covdefaults"]
source = ["project",]
data_file = "project.coverage"
branch = true
omit = [
    "*/tests/**/*.py",
    "*/tasks/**/*.py",
    "**/conf.py",
]

[tool.coverage.html]
skip_empty = true

[tool.coverage.report]
fail_under = 80
skip_empty = true

[tool.pylama.linter.pylint]
max_line_length = 180
load-plugins = "pylint.extensions.docparams,pylint.extensions.docstyle,pylint.extensions.redefined_loop_name,pylint.extensions.overlapping_exceptions"
# parameter_documentation
accept-no-param-doc = true
accept-no-raise-doc = true
accept-no-return-doc = true
accept-no-yields-doc = true
default-docstring-type = "google"

One note is that we have two sources set in project: one for private company packages and one for mirror

$ poetry source show
name      : internal                                                                                 
url       : https://artifactory.company.com/artifactory/api/pypi/internal-packages/simple 
priority  : primary                                                                               

name      : pypi-mirror                                                                                       
url       : https://artifactory.company.com/artifactory/api/pypi/proxy-pypiorg/simple/ 
priority  : primary   

Poetry Runtime Logs

Loading configuration file /home/ci/.config/pypoetry/config.toml
Adding repository internal (https://artifactory.company.com/artifactory/api/pypi/internal-packages/simple) and setting it as primary
Adding repository pypi-mirror (https://artifactory.company.com/artifactory/api/pypi/proxy-pypiorg/simple) and setting it as primary
Deactivating the PyPI repository
Creating virtualenv project-BOmdJNI2-py3.11 in /home/ci/.cache/pypoetry/virtualenvs
[virtualenv] created app data folder /home/ci/.local/share/virtualenv
[virtualenv] find interpreter for spec PythonSpec(path=/usr/local/bin/python3)
[virtualenv] proposed PythonInfo(spec=CPython3.11.1.final.0-64, exe=/usr/local/bin/python3, platform=linux, version='3.11.1 (main, Nov 23 2023, 13:00:05) [GCC 11.4.0]', encoding_fs_io=utf-8-utf-8)
[virtualenv] accepted PythonInfo(spec=CPython3.11.1.final.0-64, exe=/usr/local/bin/python3, platform=linux, version='3.11.1 (main, Nov 23 2023, 13:00:05) [GCC 11.4.0]', encoding_fs_io=utf-8-utf-8)
[virtualenv] filesystem is case-sensitive
[virtualenv] create virtual environment via CPython3Posix(dest=/home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11, clear=False, no_vcs_ignore=False, global=False)
[virtualenv] create folder /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/bin
[virtualenv] create folder /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/lib/python3.11/site-packages
[virtualenv] write /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/pyvenv.cfg
[virtualenv] 	home = /usr/local/bin
[virtualenv] 	implementation = CPython
[virtualenv] 	version_info = 3.11.1.final.0
[virtualenv] 	virtualenv = 20.24.7
[virtualenv] 	include-system-site-packages = false
[virtualenv] 	base-prefix = /usr/local
[virtualenv] 	base-exec-prefix = /usr/local
[virtualenv] 	base-executable = /usr/local/bin/python3
[virtualenv] symlink /usr/local/bin/python3 to /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/bin/python
[virtualenv] create virtualenv import hook file /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/lib/python3.11/site-packages/_virtualenv.pth
[virtualenv] create /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/lib/python3.11/site-packages/_virtualenv.py
[virtualenv] ============================== target debug ==============================
[virtualenv] debug via /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/bin/python /usr/local/lib/python3.11/site-packages/virtualenv/create/debug.py
[virtualenv] {
[virtualenv]   "sys": {
[virtualenv]     "executable": "/home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/bin/python",
[virtualenv]     "_base_executable": "/usr/local/bin/python3.11",
[virtualenv]     "prefix": "/home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11",
[virtualenv]     "base_prefix": "/usr/local",
[virtualenv]     "real_prefix": null,
[virtualenv]     "exec_prefix": "/home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11",
[virtualenv]     "base_exec_prefix": "/usr/local",
[virtualenv]     "path": [
[virtualenv]       "/usr/local/lib/python311.zip",
[virtualenv]       "/usr/local/lib/python3.11",
[virtualenv]       "/usr/local/lib/python3.11/lib-dynload",
[virtualenv]       "/home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/lib/python3.11/site-packages"
[virtualenv]     ],
[virtualenv]     "meta_path": [
[virtualenv]       "<class '_virtualenv._Finder'>",
[virtualenv]       "<class '_frozen_importlib.BuiltinImporter'>",
[virtualenv]       "<class '_frozen_importlib.FrozenImporter'>",
[virtualenv]       "<class '_frozen_importlib_external.PathFinder'>"
[virtualenv]     ],
[virtualenv]     "fs_encoding": "utf-8",
[virtualenv]     "io_encoding": "utf-8"
[virtualenv]   },
[virtualenv]   "version": "3.11.1 (main, Nov 23 2023, 13:00:05) [GCC 11.4.0]",
[virtualenv]   "makefile_filename": "/usr/local/lib/python3.11/config-3.11-x86_64-linux-gnu/Makefile",
[virtualenv]   "os": "<module 'os' (frozen)>",
[virtualenv]   "site": "<module 'site' (frozen)>",
[virtualenv]   "datetime": "<module 'datetime' from '/usr/local/lib/python3.11/datetime.py'>",
[virtualenv]   "math": "<module 'math' from '/usr/local/lib/python3.11/lib-dynload/math.cpython-311-x86_64-linux-gnu.so'>",
[virtualenv]   "json": "<module 'json' from '/usr/local/lib/python3.11/json/__init__.py'>"
[virtualenv] }
[virtualenv] add seed packages via FromAppData(download=False, pip=bundle, setuptools=bundle, via=copy, app_data_dir=/home/ci/.local/share/virtualenv)
[virtualenv] install pip from wheel /usr/local/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/pip-23.3.1-py3-none-any.whl via CopyPipInstall
[virtualenv] install setuptools from wheel /usr/local/lib/python3.11/site-packages/virtualenv/seed/wheels/embed/setuptools-68.2.2-py3-none-any.whl via CopyPipInstall
[filelock:filelock] Attempting to acquire lock 139832159771664 on /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-23.3.1-py3-none-any.lock
[filelock:filelock] Attempting to acquire lock 139832159266256 on /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-68.2.2-py3-none-any.lock
[filelock:filelock] Lock 139832159771664 acquired on /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-23.3.1-py3-none-any.lock
[filelock:filelock] Lock 139832159266256 acquired on /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-68.2.2-py3-none-any.lock
[virtualenv] build install image for pip-23.3.1-py3-none-any.whl to /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-23.3.1-py3-none-any
[virtualenv] build install image for setuptools-68.2.2-py3-none-any.whl to /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-68.2.2-py3-none-any
[filelock:filelock] Attempting to release lock 139832159266256 on /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-68.2.2-py3-none-any.lock
[filelock:filelock] Lock 139832159266256 released on /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-68.2.2-py3-none-any.lock
[virtualenv] copy directory /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-68.2.2-py3-none-any/setuptools to /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/lib/python3.11/site-packages/setuptools
[virtualenv] copy directory /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-68.2.2-py3-none-any/setuptools-68.2.2.dist-info to /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/lib/python3.11/site-packages/setuptools-68.2.2.dist-info
[virtualenv] copy directory /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-68.2.2-py3-none-any/pkg_resources to /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/lib/python3.11/site-packages/pkg_resources
[virtualenv] copy directory /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-68.2.2-py3-none-any/_distutils_hack to /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/lib/python3.11/site-packages/_distutils_hack
[virtualenv] copy /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-68.2.2-py3-none-any/distutils-precedence.pth to /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/lib/python3.11/site-packages/distutils-precedence.pth
[virtualenv] copy /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/setuptools-68.2.2-py3-none-any/setuptools-68.2.2.virtualenv to /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/lib/python3.11/site-packages/setuptools-68.2.2.virtualenv
[virtualenv] generated console scripts 
[distlib:distlib.util] changing mode of /tmp/tmp2mfn7q1y/pip-3.11 to 775
[distlib:distlib.util] changing mode of /tmp/tmp2mfn7q1y/pip3 to 775
[distlib:distlib.util] changing mode of /tmp/tmp2mfn7q1y/pip to 775
[distlib:distlib.util] changing mode of /tmp/tmp2mfn7q1y/pip3.11 to 775
[filelock:filelock] Attempting to release lock 139832159771664 on /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-23.3.1-py3-none-any.lock
[filelock:filelock] Lock 139832159771664 released on /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-23.3.1-py3-none-any.lock
[virtualenv] copy directory /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-23.3.1-py3-none-any/pip-23.3.1.dist-info to /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/lib/python3.11/site-packages/pip-23.3.1.dist-info
[virtualenv] copy directory /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-23.3.1-py3-none-any/pip to /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/lib/python3.11/site-packages/pip
[virtualenv] copy /home/ci/.local/share/virtualenv/wheel/3.11/image/1/CopyPipInstall/pip-23.3.1-py3-none-any/pip-23.3.1.virtualenv to /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/lib/python3.11/site-packages/pip-23.3.1.virtualenv
[distlib:distlib.util] changing mode of /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/bin/pip-3.11 to 775
[distlib:distlib.util] changing mode of /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/bin/pip3 to 775
[distlib:distlib.util] changing mode of /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/bin/pip to 775
[distlib:distlib.util] changing mode of /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/bin/pip3.11 to 775
[virtualenv] generated console scripts pip-3.11 pip pip3.11 pip3
[virtualenv] add activators for Bash, CShell, Fish, Nushell, PowerShell, Python
[virtualenv] write /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11/pyvenv.cfg
[virtualenv] 	home = /usr/local/bin
[virtualenv] 	implementation = CPython
[virtualenv] 	version_info = 3.11.1.final.0
[virtualenv] 	virtualenv = 20.24.7
[virtualenv] 	include-system-site-packages = false
[virtualenv] 	base-prefix = /usr/local
[virtualenv] 	base-exec-prefix = /usr/local
[virtualenv] 	base-executable = /usr/local/bin/python3
[virtualenv] 	prompt = project-py3.11
Using virtualenv: /home/ci/.cache/pypoetry/virtualenvs/project-BOmdJNI2-py3.11
Resolving dependencies...
   1: fact: project is 0.1.34
   1: derived: project
   1: fact: project depends on pydantic (^2.5.1)
   1: fact: project depends on pydantic-yaml (^1.2.1)
   1: fact: project depends on packaging (^23.1)
   1: fact: project depends on yarl (^1.9.2)
   1: fact: project depends on types-requests (^2.31.0.6)
   1: fact: project depends on requests[security] (^2.31.0)
   1: fact: project depends on configparser (^6.0.0)
   1: fact: project depends on urllib3 (^2.2.0)
   1: fact: project depends on click (^8.1.7)
   1: fact: project depends on platformdirs (^4.1.0)
   1: fact: project depends on pre-commit (^3.3.3)
   1: fact: project depends on black (^23.12.1)
   1: fact: project depends on isort (^5.12.0)
   1: fact: project depends on pytest (^7.4.0)
   1: fact: project depends on mypy (1.6.1)
   1: fact: project depends on allure-pytest (^2.13.2)
   1: fact: project depends on twine (^4.0.2)
   1: fact: project depends on datamodel-code-generator[validation] (^0.24.2)
   1: fact: project depends on pytest-dependency (^0.5.1)
   1: fact: project depends on pylama[pylint,toml] (^8.4.1)
   1: fact: project depends on pytest-cov (^4.1.0)
   1: fact: project depends on types-setuptools (^69.1.0.0)
   1: fact: project depends on pytest-glamor-allure (^0.0.10)
   1: fact: project depends on sphinx (^7.2.6)
   1: fact: project depends on sphinx-click (^5.1.0)
   1: fact: project depends on sphinxcontrib-mermaid (^0.9.2)
   1: fact: project depends on sphinxcontrib-apidoc (^0.4.0)
   1: fact: project depends on autodoc-pydantic (^2.0.1)
   1: fact: project depends on sphinx-rtd-theme (^2.0.0)
   1: fact: project depends on sphinx-copybutton (^0.5.2)
   1: fact: project depends on myst-parser (^2.0.0)
   1: fact: project depends on docker (^7.0.0)
   1: fact: project depends on project-rst2dita (^0.2.0)
   1: fact: project depends on covdefaults (^2.3.0)
   1: selecting project (0.1.34)
   1: derived: covdefaults (>=2.3.0,<3.0.0)
   1: derived: project-rst2dita (>=0.2.0,<0.3.0)
   1: derived: docker (>=7.0.0,<8.0.0)
   1: derived: myst-parser (>=2.0.0,<3.0.0)
   1: derived: sphinx-copybutton (>=0.5.2,<0.6.0)
   1: derived: sphinx-rtd-theme (>=2.0.0,<3.0.0)
   1: derived: autodoc-pydantic (>=2.0.1,<3.0.0)
   1: derived: sphinxcontrib-apidoc (>=0.4.0,<0.5.0)
   1: derived: sphinxcontrib-mermaid (>=0.9.2,<0.10.0)
   1: derived: sphinx-click (>=5.1.0,<6.0.0)
   1: derived: sphinx (>=7.2.6,<8.0.0)
   1: derived: pytest-glamor-allure (>=0.0.10,<0.0.11)
   1: derived: types-setuptools (>=69.1.0.0,<70.0.0.0)
   1: derived: pytest-cov (>=4.1.0,<5.0.0)
   1: derived: pylama[pylint,toml] (>=8.4.1,<9.0.0)
   1: derived: pytest-dependency (>=0.5.1,<0.6.0)
   1: derived: datamodel-code-generator[validation] (>=0.24.2,<0.25.0)
   1: derived: twine (>=4.0.2,<5.0.0)
   1: derived: allure-pytest (>=2.13.2,<3.0.0)
   1: derived: mypy (==1.6.1)
   1: derived: pytest (>=7.4.0,<8.0.0)
   1: derived: isort (>=5.12.0,<6.0.0)
   1: derived: black (>=23.12.1,<24.0.0)
   1: derived: pre-commit (>=3.3.3,<4.0.0)
   1: derived: platformdirs (>=4.1.0,<5.0.0)
   1: derived: click (>=8.1.7,<9.0.0)
   1: derived: urllib3 (>=2.2.0,<3.0.0)
   1: derived: configparser (>=6.0.0,<7.0.0)
   1: derived: requests[security] (>=2.31.0,<3.0.0)
   1: derived: types-requests (>=2.31.0.6,<3.0.0.0)
   1: derived: yarl (>=1.9.2,<2.0.0)
   1: derived: packaging (>=23.1,<24.0)
   1: derived: pydantic-yaml (>=1.2.1,<2.0.0)
   1: derived: pydantic (>=2.5.1,<3.0.0)
Multiple source configurations found for artifactory.company.com - internal, pypi-mirror
Checking if keyring is available
[keyring:keyring.backend] Loading KWallet
[keyring:keyring.backend] Loading SecretService
[keyring:keyring.backend] Loading Windows
[keyring:keyring.backend] Loading chainer
[keyring:keyring.backend] Loading libsecret
[keyring:keyring.backend] Loading macOS
Backend 'fail Keyring' is not suitable
No valid keyring backend was found
Creating new session for artifactory.company.com
Multiple source configurations found for artifactory.company.com - internal, pypi-mirror
[urllib3:urllib3.connectionpool] Starting new HTTPS connection (1): artifactory.company.com:443
[urllib3:urllib3.connectionpool] https://artifactory.company.com:443 "GET /artifactory/api/pypi/internal-packages/simple/covdefaults/ HTTP/1.1" 404 None
Multiple source configurations found for artifactory.company.com - internal, pypi-mirror
Checking if keyring is available
Backend 'fail Keyring' is not suitable
No valid keyring backend was found
Creating new session for artifactory.company.com
Multiple source configurations found for artifactory.company.com - internal, pypi-mirror
[urllib3:urllib3.connectionpool] Starting new HTTPS connection (1): artifactory.company.com:443
[urllib3:urllib3.connectionpool] https://artifactory.company.com:443 "GET /artifactory/api/pypi/proxy-pypiorg/simple/covdefaults/ HTTP/1.1" 200 None
[filelock:filelock] Attempting to acquire lock 139832124757840 on /home/ci/.cache/pypoetry/cache/repositories/pypi-mirror/_http/0/b/2/3/d/0b23db5319e4e9a794aeaa04172dd017f0f57438faaa55d770545f19.lock
[filelock:filelock] Lock 139832124757840 acquired on /home/ci/.cache/pypoetry/cache/repositories/pypi-mirror/_http/0/b/2/3/d/0b23db5319e4e9a794aeaa04172dd017f0f57438faaa55d770545f19.lock
[filelock:filelock] Attempting to release lock 139832124757840 on /home/ci/.cache/pypoetry/cache/repositories/pypi-mirror/_http/0/b/2/3/d/0b23db5319e4e9a794aeaa04172dd017f0f57438faaa55d770545f19.lock
[filelock:filelock] Lock 139832124757840 released on /home/ci/.cache/pypoetry/cache/repositories/pypi-mirror/_http/0/b/2/3/d/0b23db5319e4e9a794aeaa04172dd017f0f57438faaa55d770545f19.lock
begin fetching content length
initial bytes request: bytes=-10000
Multiple source configurations found for artifactory.company.com - internal, pypi-mirror
Multiple source configurations found for artifactory.company.com - internal, pypi-mirror
[urllib3:urllib3.connectionpool] https://artifactory.company.com:443 "GET /artifactory/api/pypi/proxy-pypiorg/packages/packages/76/4c/823bc951445aa97e5a1b7e337690db3abf85212c8d138e170922e7916ac8/covdefaults-2.3.0-py2.py3-none-any.whl HTTP/1.1" 200 5144
[filelock:filelock] Attempting to acquire lock 139832124795664 on /home/ci/.cache/pypoetry/cache/repositories/pypi-mirror/_http/c/6/1/5/5/c6155f333db99acf23d4f1bc211294e028e828596c61240d2fc544ec.lock
[filelock:filelock] Lock 139832124795664 acquired on /home/ci/.cache/pypoetry/cache/repositories/pypi-mirror/_http/c/6/1/5/5/c6155f333db99acf23d4f1bc211294e028e828596c61240d2fc544ec.lock
[filelock:filelock] Attempting to release lock 139832124795664 on /home/ci/.cache/pypoetry/cache/repositories/pypi-mirror/_http/c/6/1/5/5/c6155f333db99acf23d4f1bc211294e028e828596c61240d2fc544ec.lock
[filelock:filelock] Lock 139832124795664 released on /home/ci/.cache/pypoetry/cache/repositories/pypi-mirror/_http/c/6/1/5/5/c6155f333db99acf23d4f1bc211294e028e828596c61240d2fc544ec.lock
done fetching content length (is: 5144)
read size -1 at 5122 from lazy file /tmp/tmpv098s_3j
read size 20 at 5102 from lazy file /tmp/tmpv098s_3j
read size 469 at 4653 from lazy file /tmp/tmpv098s_3j
begin prefetching METADATA for covdefaults-2.3.0-py2.py3-none-any.whl
read size -1 at 5122 from lazy file /tmp/tmpv098s_3j
read size 20 at 5102 from lazy file /tmp/tmpv098s_3j
read size 469 at 4653 from lazy file /tmp/tmpv098s_3j
fetch covdefaults-2.3.0.dist-info/METADATA
done prefetching METADATA for covdefaults-2.3.0-py2.py3-none-any.whl
read size 30 at 2186 from lazy file /tmp/tmpv098s_3j
read size 36 at 2216 from lazy file /tmp/tmpv098s_3j
read size 1796 at 2252 from lazy file /tmp/tmpv098s_3j
unsetting merge intervals (were: MergeIntervals(left=(0,), right=(5143,)))
unsetting content length (was: 5144)
   1: fact: covdefaults (2.3.0) depends on coverage (>=6.0.2)
   1: selecting covdefaults (2.3.0)
   1: derived: coverage (>=6.0.2)
Multiple source configurations found for artifactory.company.com - internal, pypi-mirror
Multiple source configurations found for artifactory.company.com - internal, pypi-mirror
[urllib3:urllib3.connectionpool] https://artifactory.company.com:443 "GET /artifactory/api/pypi/internal-packages/simple/project-rst2dita/ HTTP/1.1" 200 None
[filelock:filelock] Attempting to acquire lock 139832124799184 on /home/ci/.cache/pypoetry/cache/repositories/internal/_http/d/8/4/8/1/d8481746c73f3f62da726b2fd99f6fac69a5db6c692a9e3c9272c8d7.lock
[filelock:filelock] Lock 139832124799184 acquired on /home/ci/.cache/pypoetry/cache/repositories/internal/_http/d/8/4/8/1/d8481746c73f3f62da726b2fd99f6fac69a5db6c692a9e3c9272c8d7.lock
[filelock:filelock] Attempting to release lock 139832124799184 on /home/ci/.cache/pypoetry/cache/repositories/internal/_http/d/8/4/8/1/d8481746c73f3f62da726b2fd99f6fac69a5db6c692a9e3c9272c8d7.lock
[filelock:filelock] Lock 139832124799184 released on /home/ci/.cache/pypoetry/cache/repositories/internal/_http/d/8/4/8/1/d8481746c73f3f62da726b2fd99f6fac69a5db6c692a9e3c9272c8d7.lock
begin fetching content length
initial bytes request: bytes=-10000
Multiple source configurations found for artifactory.company.com - internal, pypi-mirror
Multiple source configurations found for artifactory.company.com - internal, pypi-mirror
[urllib3:urllib3.connectionpool] https://artifactory.company.com:443 "GET /artifactory/api/pypi/internal-packages/project-rst2dita/0.2.0/project_rst2dita-0.2.0-py3-none-any.whl HTTP/1.1" 206 10001
streamed bytes request: bytes=1521-11520
[urllib3:urllib3.connectionpool] Starting new HTTPS connection (2): artifactory.company.com:443
[urllib3:urllib3.connectionpool] https://artifactory.company.com:443 "GET /artifactory/api/pypi/internal-packages/project-rst2dita/0.2.0/project_rst2dita-0.2.0-py3-none-any.whl HTTP/1.1" 206 10000
done fetching content length (is: 11521)
read size -1 at 11499 from lazy file /tmp/tmp_psx5b7l
read size 20 at 11479 from lazy file /tmp/tmp_psx5b7l
read size 658 at 10841 from lazy file /tmp/tmp_psx5b7l
begin prefetching METADATA for project_rst2dita-0.2.0-py3-none-any.whl
read size -1 at 11499 from lazy file /tmp/tmp_psx5b7l
read size 20 at 11479 from lazy file /tmp/tmp_psx5b7l
read size 658 at 10841 from lazy file /tmp/tmp_psx5b7l
fetch project_rst2dita-0.2.0.dist-info/METADATA
done prefetching METADATA for project_rst2dita-0.2.0-py3-none-any.whl
read size 30 at 9409 from lazy file /tmp/tmp_psx5b7l
read size 44 at 9439 from lazy file /tmp/tmp_psx5b7l
read size 683 at 9483 from lazy file /tmp/tmp_psx5b7l
unsetting merge intervals (were: MergeIntervals(left=(1521,), right=(11520,)))
unsetting content length (was: 11521)
   1: fact: project-rst2dita (0.2.0) depends on Sphinx (>=7.2.6,<8.0.0)
   1: fact: project-rst2dita (0.2.0) depends on lxml (>=4.9.4,<5.0.0)
   1: fact: project-rst2dita (0.2.0) depends on pydantic (>=2.5.1,<3.0.0)
   1: fact: project-rst2dita (0.2.0) depends on types-lxml (>=2023.10.21,<2024.0.0)
   1: selecting project-rst2dita (0.2.0)
   1: derived: types-lxml (>=2023.10.21,<2024.0.0)
   1: derived: lxml (>=4.9.4,<5.0.0)
Multiple source configurations found for artifactory.company.com - internal, pypi-mirror
Multiple source configurations found for artifactory.company.com - internal, pypi-mirror
[urllib3:urllib3.connectionpool] https://artifactory.company.com:443 "GET /artifactory/api/pypi/internal-packages/simple/docker/ HTTP/1.1" 404 None
Multiple source configurations found for artifactory.company.com - internal, pypi-mirror
Multiple source configurations found for artifactory.company.com - internal, pypi-mirror
[urllib3:urllib3.connectionpool] https://artifactory.company.com:443 "GET /artifactory/api/pypi/proxy-pypiorg/simple/docker/ HTTP/1.1" 200 None
[filelock:filelock] Attempting to acquire lock 139832124909136 on /home/ci/.cache/pypoetry/cache/repositories/pypi-mirror/_http/c/6/a/4/a/c6a4a60d5e00285d634a05f7597d46b93d99316e83a0f46e29bebc6c.lock
[filelock:filelock] Lock 139832124909136 acquired on /home/ci/.cache/pypoetry/cache/repositories/pypi-mirror/_http/c/6/a/4/a/c6a4a60d5e00285d634a05f7597d46b93d99316e83a0f46e29bebc6c.lock
[filelock:filelock] Attempting to release lock 139832124909136 on /home/ci/.cache/pypoetry/cache/repositories/pypi-mirror/_http/c/6/a/4/a/c6a4a60d5e00285d634a05f7597d46b93d99316e83a0f46e29bebc6c.lock
[filelock:filelock] Lock 139832124909136 released on /home/ci/.cache/pypoetry/cache/repositories/pypi-mirror/_http/c/6/a/4/a/c6a4a60d5e00285d634a05f7597d46b93d99316e83a0f46e29bebc6c.lock
begin fetching content length
Multiple source configurations found for artifactory.company.com - internal, pypi-mirror
Multiple source configurations found for artifactory.company.com - internal, pypi-mirror
[urllib3:urllib3.connectionpool] https://artifactory.company.com:443 "HEAD /artifactory/api/pypi/proxy-pypiorg/packages/packages/18/bd/9706c10bb12e05043ef138dc8d412cfd17f29c8df0fb28ad71c96a98785d/docker-7.0.0-py3-none-any.whl HTTP/1.1" 200 0
streamed bytes request: bytes=137565-147564
[urllib3:urllib3.connectionpool] https://artifactory.company.com:443 "GET /artifactory/api/pypi/proxy-pypiorg/packages/packages/18/bd/9706c10bb12e05043ef138dc8d412cfd17f29c8df0fb28ad71c96a98785d/docker-7.0.0-py3-none-any.whl HTTP/1.1" 200 147565
   1: Version solving took 0.890 seconds.
   1: Tried 1 solutions.

  ValueError

  Package('docker', '7.0.0') is not in list

  at ~/.local/lib/python3.11/site-packages/poetry/repositories/legacy_repository.py:66 in package
       62│         Note that this will be cached so the subsequent operations
       63│         should be much faster.
       64│         """
       65│         try:
    →  66│             index = self._packages.index(Package(name, version))
       67│ 
       68│             return self._packages[index]
       69│         except ValueError:
       70│             package = super().package(name, version, extras)

The following error occurred when trying to handle this error:


  Stack trace:

  32  ~/.local/lib/python3.11/site-packages/cleo/application.py:327 in run
       325│ 
       326│             try:
     → 327│                 exit_code = self._run(io)
       328│             except BrokenPipeError:
       329│                 # If we are piped to another process, it may close early and send a

  31  ~/.local/lib/python3.11/site-packages/poetry/console/application.py:190 in _run
       188│         self._load_plugins(io)
       189│ 
     → 190│         exit_code: int = super()._run(io)
       191│         return exit_code
       192│ 

  30  ~/.local/lib/python3.11/site-packages/cleo/application.py:431 in _run
       429│             io.input.interactive(interactive)
       430│ 
     → 431│         exit_code = self._run_command(command, io)
       432│         self._running_command = None
       433│ 

  29  ~/.local/lib/python3.11/site-packages/cleo/application.py:473 in _run_command
       471│ 
       472│         if error is not None:
     → 473│             raise error
       474│ 
       475│         return terminate_event.exit_code

  28  ~/.local/lib/python3.11/site-packages/cleo/application.py:457 in _run_command
       455│ 
       456│             if command_event.command_should_run():
     → 457│                 exit_code = command.run(io)
       458│             else:
       459│                 exit_code = ConsoleCommandEvent.RETURN_CODE_DISABLED

  27  ~/.local/lib/python3.11/site-packages/cleo/commands/base_command.py:117 in run
       115│         io.input.validate()
       116│ 
     → 117│         return self.execute(io) or 0
       118│ 
       119│     def merge_application_definition(self, merge_args: bool = True) -> None:

  26  ~/.local/lib/python3.11/site-packages/cleo/commands/command.py:61 in execute
        59│ 
        60│         try:
     →  61│             return self.handle()
        62│         except KeyboardInterrupt:
        63│             return 1

  25  ~/.local/lib/python3.11/site-packages/poetry/console/commands/lock.py:55 in handle
        53│         self.installer.lock(update=not self.option("no-update"))
        54│ 
     →  55│         return self.installer.run()
        56│ 

  24  ~/.local/lib/python3.11/site-packages/poetry/installation/installer.py:95 in run
        93│         # Check if refresh
        94│         if not self._update and self._lock and self._locker.is_locked():
     →  95│             return self._do_refresh()
        96│ 
        97│         # Force update if there is no lock file present

  23  ~/.local/lib/python3.11/site-packages/poetry/installation/installer.py:201 in _do_refresh
       199│             source_root=self._env.path.joinpath("src")
       200│         ):
     → 201│             ops = solver.solve(use_latest=use_latest).calculate_operations()
       202│ 
       203│         lockfile_repo = LockfileRepository()

  22  ~/.local/lib/python3.11/site-packages/poetry/puzzle/solver.py:71 in solve
        69│         with self._progress(), self._provider.use_latest_for(use_latest or []):
        70│             start = time.time()
     →  71│             packages, depths = self._solve()
        72│             end = time.time()
        73│ 

  21  ~/.local/lib/python3.11/site-packages/poetry/puzzle/solver.py:154 in _solve
       152│ 
       153│         try:
     → 154│             result = resolve_version(self._package, self._provider)
       155│ 
       156│             packages = result.packages

  20  ~/.local/lib/python3.11/site-packages/poetry/mixology/__init__.py:18 in resolve_version
        16│     solver = VersionSolver(root, provider)
        17│ 
     →  18│     return solver.solve()
        19│ 

  19  ~/.local/lib/python3.11/site-packages/poetry/mixology/version_solver.py:175 in solve
       173│             while next is not None:
       174│                 self._propagate(next)
     → 175│                 next = self._choose_package_version()
       176│ 
       177│             return self._result()

  18  ~/.local/lib/python3.11/site-packages/poetry/mixology/version_solver.py:514 in _choose_package_version
       512│             package = locked
       513│ 
     → 514│         package = self._provider.complete_package(package)
       515│ 
       516│         conflict = False

  17  ~/.local/lib/python3.11/site-packages/poetry/puzzle/provider.py:489 in complete_package
       487│                 dependency_package = DependencyPackage(
       488│                     dependency,
     → 489│                     self._pool.package(
       490│                         package.pretty_name,
       491│                         package.version,

  16  ~/.local/lib/python3.11/site-packages/poetry/repositories/repository_pool.py:204 in package
       202│         for repo in self.repositories:
       203│             try:
     → 204│                 return repo.package(name, version, extras=extras)
       205│             except PackageNotFound:
       206│                 continue

  15  ~/.local/lib/python3.11/site-packages/poetry/repositories/legacy_repository.py:70 in package
        68│             return self._packages[index]
        69│         except ValueError:
     →  70│             package = super().package(name, version, extras)
        71│             package._source_type = "legacy"
        72│             package._source_url = self._url

  14  ~/.local/lib/python3.11/site-packages/poetry/repositories/cached_repository.py:75 in package
        73│         extras: list[str] | None = None,
        74│     ) -> Package:
     →  75│         return self.get_release_info(canonicalize_name(name), version).to_package(
        76│             name=name, extras=extras
        77│         )

  13  ~/.local/lib/python3.11/site-packages/poetry/repositories/cached_repository.py:52 in get_release_info
        50│             return PackageInfo.load(self._get_release_info(name, version))
        51│ 
     →  52│         cached = self._release_cache.remember(
        53│             f"{name}:{version}", lambda: self._get_release_info(name, version)
        54│         )

  12  ~/.local/lib/python3.11/site-packages/poetry/utils/cache.py:147 in remember
       145│         value = self.get(key)
       146│         if value is None:
     → 147│             value = callback() if callable(callback) else callback
       148│             self.put(key, value, minutes)
       149│         return value

  11  ~/.local/lib/python3.11/site-packages/poetry/repositories/cached_repository.py:53 in <lambda>
        51│ 
        52│         cached = self._release_cache.remember(
     →  53│             f"{name}:{version}", lambda: self._get_release_info(name, version)
        54│         )
        55│ 

  10  ~/.local/lib/python3.11/site-packages/poetry/repositories/legacy_repository.py:123 in _get_release_info
       121│         yanked = page.yanked(name, version)
       122│ 
     → 123│         return self._links_to_data(
       124│             links,
       125│             PackageInfo(

   9  ~/.local/lib/python3.11/site-packages/poetry/repositories/http_repository.py:360 in _links_to_data
       358│ 
       359│         # drop yanked files unless the entire release is yanked
     → 360│         info = self._get_info_from_links(links, ignore_yanked=not data.yanked)
       361│ 
       362│         data.summary = info.summary

   8  ~/.local/lib/python3.11/site-packages/poetry/repositories/http_repository.py:310 in _get_info_from_links
       308│                 return self._get_info_from_metadata(
       309│                     universal_python3_wheel
     → 310│                 ) or self._get_info_from_wheel(universal_python3_wheel)
       311│ 
       312│             if universal_python2_wheel:

   7  ~/.local/lib/python3.11/site-packages/poetry/repositories/http_repository.py:123 in _get_info_from_wheel
       121│             try:
       122│                 package_info = PackageInfo.from_metadata(
     → 123│                     metadata_from_wheel_url(link.filename, link.url, self.session)
       124│                 )
       125│             except HTTPRangeRequestUnsupported:

   6  ~/.local/lib/python3.11/site-packages/poetry/inspection/lazy_wheel.py:77 in metadata_from_wheel_url
        75│         # After context manager exit, wheel.name will point to a deleted file path.
        76│         # Add `delete_backing_file=False` to disable this for debugging.
     →  77│         with LazyWheelOverHTTP(url, session) as lazy_file:
        78│             metadata_bytes = lazy_file.read_metadata(name)
        79│ 

   5  ~/.local/lib/python3.11/site-packages/poetry/inspection/lazy_wheel.py:289 in __enter__
       287│     def __enter__(self: U) -> U:
       288│         super().__enter__()
     → 289│         self._setup_content()
       290│         return self
       291│ 

   4  ~/.local/lib/python3.11/site-packages/poetry/inspection/lazy_wheel.py:357 in _setup_content
       355│         if self._length is None:
       356│             logger.debug("begin fetching content length")
     → 357│             self._length = self._fetch_content_length()
       358│             logger.debug("done fetching content length (is: %d)", self._length)
       359│             # Enable us to seek and write anywhere in the backing file up to this

   3  ~/.local/lib/python3.11/site-packages/poetry/inspection/lazy_wheel.py:520 in _fetch_content_length
       518│             # central directory.
       519│             initial_start = max(0, ret_length - initial_chunk_size)
     → 520│             self._ensure_downloaded(initial_start, ret_length)
       521│         else:
       522│             # If we *could* download some file contents, then write them to the end of

   2  ~/.local/lib/python3.11/site-packages/poetry/inspection/lazy_wheel.py:450 in _ensure_downloaded
       448│             ) in self._merge_intervals.minimal_intervals_covering(start, end):
       449│                 self.seek(start)
     → 450│                 for chunk in self._fetch_content_range(range_start, range_end):
       451│                     self._file.write(chunk)
       452│ 

   1  ~/.local/lib/python3.11/site-packages/poetry/inspection/lazy_wheel.py:420 in _fetch_content_range
       418│         bytes long, and the range can never be empty).
       419│         """
     → 420│         yield from self._stream_response(start, end).iter_content(CONTENT_CHUNK_SIZE)
       421│ 
       422│     @contextmanager

  AssertionError

  

  at ~/.local/lib/python3.11/site-packages/poetry/inspection/lazy_wheel.py:410 in _stream_response
      406│         logger.debug("streamed bytes request: %s", headers["Range"])
      407│         self._request_count += 1
      408│         response = self._session.get(self._url, headers=headers, stream=True)
      409│         response.raise_for_status()
    → 410│         assert int(response.headers["Content-Length"]) == (end - start + 1)
      411│         return response
      412│ 
      413│     def _fetch_content_range(self, start: int, end: int) -> Iterator[bytes]:
      414│         """Perform a series of HTTP range requests to cover the specified byte range.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugSomething isn't working as expected

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions