jamtur01's picture
Upload folder using huggingface_hub
9c6594c verified
"""Module containing the WBURLs class and WBURL dataclass.
Used to store predefined URLs that can be associated with a name. The URLs are
shortened using with the `wandb.me` domain, using dub.co as the shortening service.
If the URLs need to be updates, use the dub.co service to point to the new URL.
"""
from __future__ import annotations
from dataclasses import dataclass
@dataclass
class WBURL:
url: str
description: str
class Registry:
"""A collection of URLs that can be associated with a name."""
def __init__(self) -> None:
self.urls: dict[str, WBURL] = {
"wandb-launch": WBURL(
"https://wandb.me/launch",
"Link to the W&B launch marketing page",
),
"wandb-init": WBURL(
"https://wandb.me/wandb-init",
"Link to the wandb.init reference documentation page",
),
"define-metric": WBURL(
"https://wandb.me/define-metric",
"Link to the W&B developer guide documentation page on wandb.define_metric",
),
"developer-guide": WBURL(
"https://wandb.me/developer-guide",
"Link to the W&B developer guide top level page",
),
"wandb-core": WBURL(
"https://wandb.me/wandb-core",
"Link to the documentation for the wandb-core service",
),
"wandb-server": WBURL(
"https://wandb.me/wandb-server",
"Link to the documentation for the self-hosted W&B server",
),
"multiprocess": WBURL(
"https://wandb.me/multiprocess",
(
"Link to the W&B developer guide documentation page on how to "
"use wandb in a multiprocess environment"
),
),
}
def url(self, name: str) -> str:
"""Get the URL associated with the given name."""
wb_url = self.urls.get(name)
if wb_url:
return wb_url.url
raise ValueError(f"URL not found for {name}")
def description(self, name: str) -> str:
"""Get the description associated with the given name."""
wb_url = self.urls.get(name)
if wb_url:
return wb_url.description
raise ValueError(f"Description not found for {name}")
# This is an instance of the Links class that can be used to access the URLs
url_registry = Registry()