Core Compatibility Report: placid-llama/v0¤
| ❌ | bioimageio format validation |
|---|---|
| status | failed |
| source | https://hypha.aicell.io/bioimage-io/artifacts/placid-llama/files/rdf.yaml?version=v0 |
| id | 10.5281/zenodo.7261974/7782776 |
| version | 1 |
| applied format | model 0.4.10 |
| bioimageio.spec | 0.5.9.1 |
| Location | Details | |
|---|---|---|
| ❌ | bioimageio.spec format validation model 0.4.10 | |
| ❌ | peer closed connection without sending complete message body (incomplete chunked read) |
|
| See Traceback 1. |
Traceback 1
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /home/runner/.local/lib/python3.12/site-packages/httpx/_transports/default.py:101 in map_httpcor │
│ │
│ 98 │ if len(HTTPCORE_EXC_MAP) == 0: │
│ 99 │ │ HTTPCORE_EXC_MAP = _load_httpcore_exceptions() │
│ 100 │ try: │
│ ❱ 101 │ │ yield │
│ 102 │ except Exception as exc: │
│ 103 │ │ mapped_exc = None │
│ 104 │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpx/_transports/default.py:127 in __iter__ │
│ │
│ 124 │ │
│ 125 │ def __iter__(self) -> typing.Iterator[bytes]: │
│ 126 │ │ with map_httpcore_exceptions(): │
│ ❱ 127 │ │ │ for part in self._httpcore_stream: │
│ 128 │ │ │ │ yield part │
│ 129 │ │
│ 130 │ def close(self) -> None: │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:407 in __iter │
│ │
│ 404 │ │ │ │ yield part │
│ 405 │ │ except BaseException as exc: │
│ 406 │ │ │ self.close() │
│ ❱ 407 │ │ │ raise exc from None │
│ 408 │ │
│ 409 │ def close(self) -> None: │
│ 410 │ │ if not self._closed: │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:403 in __iter │
│ │
│ 400 │ │
│ 401 │ def __iter__(self) -> typing.Iterator[bytes]: │
│ 402 │ │ try: │
│ ❱ 403 │ │ │ for part in self._stream: │
│ 404 │ │ │ │ yield part │
│ 405 │ │ except BaseException as exc: │
│ 406 │ │ │ self.close() │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpcore/_sync/http11.py:342 in __iter__ │
│ │
│ 339 │ │ │ # before raising that exception. │
│ 340 │ │ │ with ShieldCancellation(): │
│ 341 │ │ │ │ self.close() │
│ ❱ 342 │ │ │ raise exc │
│ 343 │ │
│ 344 │ def close(self) -> None: │
│ 345 │ │ if not self._closed: │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpcore/_sync/http11.py:334 in __iter__ │
│ │
│ 331 │ │ kwargs = {"request": self._request} │
│ 332 │ │ try: │
│ 333 │ │ │ with Trace("receive_response_body", logger, self._request, kwargs): │
│ ❱ 334 │ │ │ │ for chunk in self._connection._receive_response_body(**kwargs): │
│ 335 │ │ │ │ │ yield chunk │
│ 336 │ │ except BaseException as exc: │
│ 337 │ │ │ # If we get an exception while streaming the response, │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpcore/_sync/http11.py:203 in _receive_respon │
│ │
│ 200 │ │ timeout = timeouts.get("read", None) │
│ 201 │ │ │
│ 202 │ │ while True: │
│ ❱ 203 │ │ │ event = self._receive_event(timeout=timeout) │
│ 204 │ │ │ if isinstance(event, h11.Data): │
│ 205 │ │ │ │ yield bytes(event.data) │
│ 206 │ │ │ elif isinstance(event, (h11.EndOfMessage, h11.PAUSED)): │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpcore/_sync/http11.py:213 in _receive_event │
│ │
│ 210 │ │ self, timeout: float | None = None │
│ 211 │ ) -> h11.Event | type[h11.PAUSED]: │
│ 212 │ │ while True: │
│ ❱ 213 │ │ │ with map_exceptions({h11.RemoteProtocolError: RemoteProtocolError}): │
│ 214 │ │ │ │ event = self._h11_state.next_event() │
│ 215 │ │ │ │
│ 216 │ │ │ if event is h11.NEED_DATA: │
│ │
│ /usr/lib/python3.12/contextlib.py:158 in __exit__ │
│ │
│ 155 │ │ │ │ # tell if we get the same exception back │
│ 156 │ │ │ │ value = typ() │
│ 157 │ │ │ try: │
│ ❱ 158 │ │ │ │ self.gen.throw(value) │
│ 159 │ │ │ except StopIteration as exc: │
│ 160 │ │ │ │ # Suppress StopIteration *unless* it's the same exception that │
│ 161 │ │ │ │ # was passed to throw(). This prevents a StopIteration │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpcore/_exceptions.py:14 in map_exceptions │
│ │
│ 11 │ except Exception as exc: # noqa: PIE786 │
│ 12 │ │ for from_exc, to_exc in map.items(): │
│ 13 │ │ │ if isinstance(exc, from_exc): │
│ ❱ 14 │ │ │ │ raise to_exc(exc) from exc │
│ 15 │ │ raise # pragma: nocover │
│ 16 │
│ 17 │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
RemoteProtocolError: peer closed connection without sending complete message body (incomplete chunked read)
The above exception was the direct cause of the following exception:
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /home/runner/.local/lib/python3.12/site-packages/bioimageio/spec/_internal/common_nodes.py:302 i │
│ │
│ 299 │ │ │
│ 300 │ │ context = get_validation_context() │
│ 301 │ │ try: │
│ ❱ 302 │ │ │ rd = cls.model_validate(data) │
│ 303 │ │ except pydantic.ValidationError as e: │
│ 304 │ │ │ for ee in e.errors(include_url=False): │
│ 305 │ │ │ │ if (severity := ee.get("ctx", {}).get("severity", ERROR)) < ERROR: │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/bioimageio/spec/_internal/node.py:91 in model_v │
│ │
│ 88 │ │ │
│ 89 │ │ with context: │
│ 90 │ │ │ # use validation context as context manager for equal behavior of __init__ and │
│ ❱ 91 │ │ │ return super().model_validate( │
│ 92 │ │ │ │ obj, strict=strict, from_attributes=from_attributes │
│ 93 │ │ │ ) │
│ 94 │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/pydantic/main.py:732 in model_validate │
│ │
│ 729 │ │ │ │ code='validate-by-alias-and-name-false', │
│ 730 │ │ │ ) │
│ 731 │ │ │
│ ❱ 732 │ │ return cls.__pydantic_validator__.validate_python( │
│ 733 │ │ │ obj, │
│ 734 │ │ │ strict=strict, │
│ 735 │ │ │ extra=extra, │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/bioimageio/spec/_internal/io.py:272 in _validat │
│ │
│ 269 │ │
│ 270 │ @model_validator(mode="after") │
│ 271 │ def _validate_sha256(self) -> Self: │
│ ❱ 272 │ │ self.validate_sha256() │
│ 273 │ │ return self │
│ 274 │ │
│ 275 │ def validate_sha256(self, force_recompute: bool = False) -> None: │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/bioimageio/spec/_internal/io.py:286 in validate │
│ │
│ 283 │ │ │
│ 284 │ │ if actual_sha is None: │
│ 285 │ │ │ if context.perform_io_checks or force_recompute: │
│ ❱ 286 │ │ │ │ reader = get_reader(self.source, sha256=self.sha256) │
│ 287 │ │ │ │ if force_recompute: │
│ 288 │ │ │ │ │ actual_sha = get_sha256(reader) │
│ 289 │ │ │ │ else: │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/bioimageio/spec/_internal/io.py:743 in get_read │
│ │
│ 740 │ │ │ source = HttpUrl(source) │
│ 741 │ │
│ 742 │ if isinstance(source, HttpUrl): │
│ ❱ 743 │ │ return _open_url(source, progressbar=progressbar, **kwargs) │
│ 744 │ │
│ 745 │ if isinstance(source, ZipPath): │
│ 746 │ │ if not source.exists(): │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/bioimageio/spec/_internal/io.py:807 in _open_ur │
│ │
│ 804 │ │ or hashlib.sha256(str(source).encode(encoding="utf-8")).hexdigest() │
│ 805 │ ) │
│ 806 │ │
│ ❱ 807 │ reader = cache.fetch( │
│ 808 │ │ source, │
│ 809 │ │ fetcher=partial(_fetch_url, progressbar=progressbar), │
│ 810 │ │ force_refetch=force_refetch, │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/genericache/__init__.py:148 in fetch │
│ │
│ 145 │ │ retries: int = 3, │
│ 146 │ ) -> "CacheEntry": │
│ 147 │ │ for _ in range(retries): │
│ ❱ 148 │ │ │ result = self.try_fetch(url, fetcher, force_refetch=force_refetch) │
│ 149 │ │ │ if isinstance(result, CacheEntry): │
│ 150 │ │ │ │ return result │
│ 151 │ │ │ if isinstance(result, FetchInterrupted): │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/genericache/disk_cache.py:260 in try_fetch │
│ │
│ 257 │ │ │ │ │ │ return out.open() │
│ 258 │ │ │ │ │
│ 259 │ │ │ │ self._misses += 1 │
│ ❱ 260 │ │ │ │ chunks = fetcher(url) │
│ 261 │ │ │ │ temp_file = tempfile.NamedTemporaryFile(delete=False) │
│ 262 │ │ │ │ contents_sha = sha256() │
│ 263 │ │ │ │ for chunk in chunks: │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/bioimageio/spec/_internal/io.py:859 in _fetch_u │
│ │
│ 856 │ elif settings.CI: │
│ 857 │ │ headers["User-Agent"] = "ci" │
│ 858 │ │
│ ❱ 859 │ r = httpx.get( │
│ 860 │ │ str(source), │
│ 861 │ │ follow_redirects=True, │
│ 862 │ │ headers=headers, │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpx/_api.py:195 in get │
│ │
│ 192 │ Note that the `data`, `files`, `json` and `content` parameters are not available │
│ 193 │ on this function, as `GET` requests should not include a request body. │
│ 194 │ """ │
│ ❱ 195 │ return request( │
│ 196 │ │ "GET", │
│ 197 │ │ url, │
│ 198 │ │ params=params, │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpx/_api.py:109 in request │
│ │
│ 106 │ │ timeout=timeout, │
│ 107 │ │ trust_env=trust_env, │
│ 108 │ ) as client: │
│ ❱ 109 │ │ return client.request( │
│ 110 │ │ │ method=method, │
│ 111 │ │ │ url=url, │
│ 112 │ │ │ content=content, │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpx/_client.py:825 in request │
│ │
│ 822 │ │ │ timeout=timeout, │
│ 823 │ │ │ extensions=extensions, │
│ 824 │ │ ) │
│ ❱ 825 │ │ return self.send(request, auth=auth, follow_redirects=follow_redirects) │
│ 826 │ │
│ 827 │ @contextmanager │
│ 828 │ def stream( │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpx/_client.py:928 in send │
│ │
│ 925 │ │ │
│ 926 │ │ except BaseException as exc: │
│ 927 │ │ │ response.close() │
│ ❱ 928 │ │ │ raise exc │
│ 929 │ │
│ 930 │ def _send_handling_auth( │
│ 931 │ │ self, │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpx/_client.py:922 in send │
│ │
│ 919 │ │ ) │
│ 920 │ │ try: │
│ 921 │ │ │ if not stream: │
│ ❱ 922 │ │ │ │ response.read() │
│ 923 │ │ │ │
│ 924 │ │ │ return response │
│ 925 │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpx/_models.py:881 in read │
│ │
│ 878 │ │ Read and return the response content. │
│ 879 │ │ """ │
│ 880 │ │ if not hasattr(self, "_content"): │
│ ❱ 881 │ │ │ self._content = b"".join(self.iter_bytes()) │
│ 882 │ │ return self._content │
│ 883 │ │
│ 884 │ def iter_bytes(self, chunk_size: int | None = None) -> typing.Iterator[bytes]: │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpx/_models.py:897 in iter_bytes │
│ │
│ 894 │ │ │ decoder = self._get_content_decoder() │
│ 895 │ │ │ chunker = ByteChunker(chunk_size=chunk_size) │
│ 896 │ │ │ with request_context(request=self._request): │
│ ❱ 897 │ │ │ │ for raw_bytes in self.iter_raw(): │
│ 898 │ │ │ │ │ decoded = decoder.decode(raw_bytes) │
│ 899 │ │ │ │ │ for chunk in chunker.decode(decoded): │
│ 900 │ │ │ │ │ │ yield chunk │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpx/_models.py:951 in iter_raw │
│ │
│ 948 │ │ chunker = ByteChunker(chunk_size=chunk_size) │
│ 949 │ │ │
│ 950 │ │ with request_context(request=self._request): │
│ ❱ 951 │ │ │ for raw_stream_bytes in self.stream: │
│ 952 │ │ │ │ self._num_bytes_downloaded += len(raw_stream_bytes) │
│ 953 │ │ │ │ for chunk in chunker.decode(raw_stream_bytes): │
│ 954 │ │ │ │ │ yield chunk │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpx/_client.py:153 in __iter__ │
│ │
│ 150 │ │ self._start = start │
│ 151 │ │
│ 152 │ def __iter__(self) -> typing.Iterator[bytes]: │
│ ❱ 153 │ │ for chunk in self._stream: │
│ 154 │ │ │ yield chunk │
│ 155 │ │
│ 156 │ def close(self) -> None: │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpx/_transports/default.py:126 in __iter__ │
│ │
│ 123 │ │ self._httpcore_stream = httpcore_stream │
│ 124 │ │
│ 125 │ def __iter__(self) -> typing.Iterator[bytes]: │
│ ❱ 126 │ │ with map_httpcore_exceptions(): │
│ 127 │ │ │ for part in self._httpcore_stream: │
│ 128 │ │ │ │ yield part │
│ 129 │
│ │
│ /usr/lib/python3.12/contextlib.py:158 in __exit__ │
│ │
│ 155 │ │ │ │ # tell if we get the same exception back │
│ 156 │ │ │ │ value = typ() │
│ 157 │ │ │ try: │
│ ❱ 158 │ │ │ │ self.gen.throw(value) │
│ 159 │ │ │ except StopIteration as exc: │
│ 160 │ │ │ │ # Suppress StopIteration *unless* it's the same exception that │
│ 161 │ │ │ │ # was passed to throw(). This prevents a StopIteration │
│ │
│ /home/runner/.local/lib/python3.12/site-packages/httpx/_transports/default.py:118 in map_httpcor │
│ │
│ 115 │ │ │ raise │
│ 116 │ │ │
│ 117 │ │ message = str(exc) │
│ ❱ 118 │ │ raise mapped_exc(message) from exc │
│ 119 │
│ 120 │
│ 121 class ResponseStream(SyncByteStream): │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
RemoteProtocolError: peer closed connection without sending complete message body (incomplete chunked read)