Skip to content

config

get_global_lake_instance(settings=None)

Create lakefs connection.

Warning

This returns singleton object which uses connection information available on first call.

Parameters:

Name Type Description Default
settings Optional[Dict[str, Any]]

Prepared studio or project settings.

None

Returns:

Type Description

wrapper.LakeCtl: Connection object.

Source code in client/ayon_usd/config.py
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
def get_global_lake_instance(settings=None):
    """Create lakefs connection.

    Warning:
        This returns singleton object which uses connection information
            available on first call.

    Args:
        settings (Optional[Dict[str, Any]]): Prepared studio or
            project settings.

    Returns:
        wrapper.LakeCtl: Connection object.

    """
    if _LocalCache.lake_instance is not None:
        return _LocalCache.lake_instance

    if not settings:
        settings = get_studio_settings()
    distribution = settings["usd"]["distribution"]["lake_fs"]

    _LocalCache.lake_instance = wrapper.LakeCtl(
        server_url=distribution["server_uri"],
        access_key_id=distribution["access_key_id"],
        secret_access_key=distribution["secret_access_key"],
    )
    return _LocalCache.lake_instance

get_lakefs_usdlib_name(lakefs_repo, settings=None)

Return AyonUsdBin/usd LakeFS repo object name for current platform.

Source code in client/ayon_usd/config.py
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
def get_lakefs_usdlib_name(lakefs_repo: str, settings=None) -> str:
    """Return AyonUsdBin/usd LakeFS repo object name for current platform."""
    lakefs_repo = _normalize_lakefs_repo_base(lakefs_repo)

    global CACHED_ITEMS
    if CACHED_ITEMS:
        lakefs_repo_items = CACHED_ITEMS
    else:
        lakefs_repo_items = _get_lakefs_repo_items(lakefs_repo, settings)
        CACHED_ITEMS = lakefs_repo_items

    platform_name = platform.system().lower()
    for item in lakefs_repo_items:
        if "AyonUsdBin/usd" in item and platform_name in item:
            return item

    raise RuntimeError(
        "No AyonUsdBin/usd item found for current platform "
        f"'{platform_name}' on LakeFS server: {lakefs_repo}. "
        f"All LakeFS repository items found: {lakefs_repo_items}")

get_lakefs_usdlib_path(lakefs_repo)

Return AyonUsdBin/usd LakeFS full url for current platform.

Source code in client/ayon_usd/config.py
87
88
89
90
def get_lakefs_usdlib_path(lakefs_repo: str) -> str:
    """Return AyonUsdBin/usd LakeFS full url for current platform. """
    usd_lib_conf = get_lakefs_usdlib_name(lakefs_repo)
    return f"{lakefs_repo}/{usd_lib_conf}"