mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
* modified distribution to use bundles * use bundles in modules discovery logic * removed unused import * added support for bundle settings getter * added script launch mechanism to ayon start script * show login UI through subprocess * removed silent mode * removed unused variable * match env variables to ayon launcher * moved ui lib function to ayon common * raise custom exception on missing bundle name * implemented missing bundle window to show issues with bundles * implemented helper function to show dialog about issues with bundle * handle issues with bundles * removed unused import * dont convert passed addons infor * access keys only in server getters * fix accessed attribute * fix test * fixed missing 'message' variable * removed duplicated data * removed unnecessary 'sha256' variable * use lstrip instead of replacement * use f-string * move import to the top of file * added some dosctrings * change type * use f-string * fix grammar * set default settings variant in global connection creation * reuse new function * added init file * safe access to optional keys * removed unnecessary condition * modified print messages on issues with bundles * Changed message in missing bundle window * updated ayon_api to 0.3.2
90 lines
1.8 KiB
Python
90 lines
1.8 KiB
Python
import os
|
|
import sys
|
|
import appdirs
|
|
|
|
IS_BUILT_APPLICATION = getattr(sys, "frozen", False)
|
|
|
|
|
|
def get_ayon_appdirs(*args):
|
|
"""Local app data directory of AYON client.
|
|
|
|
Args:
|
|
*args (Iterable[str]): Subdirectories/files in local app data dir.
|
|
|
|
Returns:
|
|
str: Path to directory/file in local app data dir.
|
|
"""
|
|
|
|
return os.path.join(
|
|
appdirs.user_data_dir("ayon", "ynput"),
|
|
*args
|
|
)
|
|
|
|
|
|
def is_staging_enabled():
|
|
"""Check if staging is enabled.
|
|
|
|
Returns:
|
|
bool: True if staging is enabled.
|
|
"""
|
|
|
|
return os.getenv("AYON_USE_STAGING") == "1"
|
|
|
|
|
|
def _create_local_site_id():
|
|
"""Create a local site identifier.
|
|
|
|
Returns:
|
|
str: Randomly generated site id.
|
|
"""
|
|
|
|
from coolname import generate_slug
|
|
|
|
new_id = generate_slug(3)
|
|
|
|
print("Created local site id \"{}\"".format(new_id))
|
|
|
|
return new_id
|
|
|
|
|
|
def get_local_site_id():
|
|
"""Get local site identifier.
|
|
|
|
Site id is created if does not exist yet.
|
|
|
|
Returns:
|
|
str: Site id.
|
|
"""
|
|
|
|
# used for background syncing
|
|
site_id = os.environ.get("AYON_SITE_ID")
|
|
if site_id:
|
|
return site_id
|
|
|
|
site_id_path = get_ayon_appdirs("site_id")
|
|
if os.path.exists(site_id_path):
|
|
with open(site_id_path, "r") as stream:
|
|
site_id = stream.read()
|
|
|
|
if not site_id:
|
|
site_id = _create_local_site_id()
|
|
with open(site_id_path, "w") as stream:
|
|
stream.write(site_id)
|
|
return site_id
|
|
|
|
|
|
def get_ayon_launch_args(*args):
|
|
"""Launch arguments that can be used to launch ayon process.
|
|
|
|
Args:
|
|
*args (str): Additional arguments.
|
|
|
|
Returns:
|
|
list[str]: Launch arguments.
|
|
"""
|
|
|
|
output = [sys.executable]
|
|
if not IS_BUILT_APPLICATION:
|
|
output.append(sys.argv[0])
|
|
output.extend(args)
|
|
return output
|