|
12 | 12 |
|
13 | 13 | from __future__ import annotations |
14 | 14 |
|
| 15 | +import json |
| 16 | +import os.path |
| 17 | +import posixpath |
| 18 | +import re |
15 | 19 | from abc import ABC, abstractmethod |
16 | 20 | from collections.abc import Callable, Iterable, Iterator, Sequence |
17 | 21 | from concurrent.futures import ThreadPoolExecutor |
18 | 22 | from dataclasses import dataclass |
19 | 23 | from datetime import datetime |
20 | 24 | from enum import Enum |
21 | 25 | from fnmatch import fnmatchcase |
22 | | -import json |
23 | | -import os.path |
24 | 26 | from pathlib import Path, PurePosixPath |
25 | | -import posixpath |
26 | | -import re |
27 | 27 | from time import sleep, time |
28 | 28 | from types import TracebackType |
29 | 29 | from typing import TYPE_CHECKING, Any, Dict, List, Optional |
30 | 30 |
|
31 | 31 | import click |
32 | | -from dandischema import models |
33 | 32 | import dandischema.consts |
34 | | -from packaging.version import Version as PackagingVersion |
35 | | -from pydantic import BaseModel, Field, PrivateAttr |
36 | 33 | import requests |
37 | 34 | import tenacity |
| 35 | +from dandischema import models |
| 36 | +from packaging.version import Version as PackagingVersion |
| 37 | +from pydantic import BaseModel, Field, PrivateAttr |
38 | 38 | from yarl import URL |
39 | 39 |
|
40 | 40 | from . import get_logger |
@@ -695,8 +695,9 @@ def check_schema_version(self, schema_version: str | None = None) -> None: |
695 | 695 | "Server did not provide schema_version in /info/;" |
696 | 696 | f" returned {server_info!r}" |
697 | 697 | ) |
698 | | - server_ver, our_ver = PackagingVersion(server_schema_version), PackagingVersion( |
699 | | - schema_version |
| 698 | + server_ver, our_ver = ( |
| 699 | + PackagingVersion(server_schema_version), |
| 700 | + PackagingVersion(schema_version), |
700 | 701 | ) |
701 | 702 | if server_ver > our_ver: |
702 | 703 | # TODO: potentially adjust here if name would be different: see |
@@ -840,7 +841,7 @@ class VersionInfo(Version): |
840 | 841 | """ |
841 | 842 |
|
842 | 843 | asset_validation_errors: List[RemoteAssetValidationError] |
843 | | - version_validation_errors: List[RemoteValidationError] |
| 844 | + validation_errors: List[RemoteValidationError] |
844 | 845 |
|
845 | 846 |
|
846 | 847 | class RemoteDandisetData(APIBase): |
@@ -1101,10 +1102,18 @@ def get_version(self, version_id: str) -> VersionInfo: |
1101 | 1102 | `Version`. |
1102 | 1103 | """ |
1103 | 1104 | try: |
| 1105 | + info_resp = self.client.get( |
| 1106 | + f"/dandisets/{self.identifier}/versions/{version_id}/info/" |
| 1107 | + ) |
| 1108 | + asset_error_resp = self.client.get( |
| 1109 | + f"/dandisets/{self.identifier}/versions/{version_id}/asset_validation_errors/" |
| 1110 | + ) |
| 1111 | + |
1104 | 1112 | return VersionInfo.model_validate( |
1105 | | - self.client.get( |
1106 | | - f"/dandisets/{self.identifier}/versions/{version_id}/info/" |
1107 | | - ) |
| 1113 | + { |
| 1114 | + **info_resp, |
| 1115 | + "asset_validation_errors": asset_error_resp, |
| 1116 | + } |
1108 | 1117 | ) |
1109 | 1118 | except HTTP404Error: |
1110 | 1119 | raise NotFoundError( |
@@ -1194,9 +1203,7 @@ def wait_until_valid(self, max_time: float = 120) -> None: |
1194 | 1203 | "asset_validation_errors": [ |
1195 | 1204 | e.json_dict() for e in v.asset_validation_errors |
1196 | 1205 | ], |
1197 | | - "version_validation_errors": [ |
1198 | | - e.json_dict() for e in v.version_validation_errors |
1199 | | - ], |
| 1206 | + "validation_errors": [e.json_dict() for e in v.validation_errors], |
1200 | 1207 | } |
1201 | 1208 | raise ValueError( |
1202 | 1209 | f"Dandiset {self.identifier} is {v.status.value}: {json.dumps(about, indent=4)}" |
|
0 commit comments