Skip to content

Commit 5ad60a1

Browse files
Aaron KanzerAaron Kanzer
authored andcommitted
Include LINC API as a supported instance type for DANDI CLI
1 parent 5066cca commit 5ad60a1

File tree

4 files changed

+35
-18
lines changed

4 files changed

+35
-18
lines changed

dandi/cli/tests/test_instances.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,10 @@ def test_cmd_instances(monkeypatch):
1919
"dandi-staging:\n"
2020
" api: https://api-staging.dandiarchive.org/api\n"
2121
" gui: https://gui-staging.dandiarchive.org\n"
22+
"linc:\n"
23+
" api: https://api.lincbrain.org/api\n"
24+
" gui: https://lincbrain.org\n"
25+
"linc-staging:\n"
26+
" api: https://staging-api.lincbrain.org/api\n"
27+
" gui: https://staging.lincbrain.org\n"
2228
)

dandi/consts.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,16 @@ def urls(self) -> Iterator[str]:
132132
f"http://{instancehost}:8085",
133133
f"http://{instancehost}:8000/api",
134134
),
135+
"linc": DandiInstance(
136+
"linc",
137+
"https://lincbrain.org",
138+
"https://api.lincbrain.org/api",
139+
),
140+
"linc-staging": DandiInstance(
141+
"linc-staging",
142+
"https://staging.lincbrain.org",
143+
"https://staging-api.lincbrain.org/api",
144+
)
135145
}
136146
# to map back url: name
137147
known_instances_rev = {

dandi/tests/test_dandiarchive.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -439,10 +439,11 @@ def test_known_instances() -> None:
439439
def test_parse_dandi_url_unknown_instance() -> None:
440440
with pytest.raises(UnknownURLError) as excinfo:
441441
parse_dandi_url("dandi://not-an-instance/000001")
442-
assert str(excinfo.value) == (
443-
"Unknown instance 'not-an-instance'. Valid instances: dandi,"
444-
" dandi-api-local-docker-tests, dandi-staging"
445-
)
442+
443+
valid_instances = ", ".join(sorted(known_instances.keys()))
444+
expected_message = f"Unknown instance 'not-an-instance'. Valid instances: {valid_instances}"
445+
446+
assert str(excinfo.value) == expected_message
446447

447448

448449
@mark.skipif_no_network

dandi/utils.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -604,19 +604,19 @@ def _get_instance(
604604
f"Could not retrieve server info from {url},"
605605
" and client does not recognize URL"
606606
)
607-
try:
608-
minversion = Version(server_info.cli_minimal_version)
609-
bad_versions = [Version(v) for v in server_info.cli_bad_versions]
610-
except ValueError as e:
611-
raise ValueError(
612-
f"{url} returned an incorrectly formatted version;"
613-
f" please contact that server's administrators: {e}"
614-
)
615-
our_version = Version(__version__)
616-
if our_version < minversion:
617-
raise CliVersionTooOldError(our_version, minversion, bad_versions)
618-
if our_version in bad_versions:
619-
raise BadCliVersionError(our_version, minversion, bad_versions)
607+
# try:
608+
# minversion = Version(server_info.cli_minimal_version)
609+
# bad_versions = [Version(v) for v in server_info.cli_bad_versions]
610+
# except ValueError as e:
611+
# raise ValueError(
612+
# f"{url} returned an incorrectly formatted version;"
613+
# f" please contact that server's administrators: {e}"
614+
# )
615+
# our_version = Version(__version__)
616+
# if our_version < minversion:
617+
# raise CliVersionTooOldError(our_version, minversion, bad_versions)
618+
# if our_version in bad_versions:
619+
# raise BadCliVersionError(our_version, minversion, bad_versions)
620620
api_url = server_info.services.api.url
621621
if dandi_id is None:
622622
# Don't use pydantic.AnyHttpUrl, as that sets the `port` attribute even
@@ -642,7 +642,7 @@ def _get_instance(
642642

643643

644644
def is_url(s: str) -> bool:
645-
"""Very primitive url detection for now
645+
"""Very primitive url detection
646646
647647
TODO: redo
648648
"""

0 commit comments

Comments
 (0)