跳到主要内容

_constants

TOC

Attributes

🅰 __author__

__author__ = """Asthestarsfalll"""

🅰 __version__

__version__ = """0.1.1beta"""

🅰 _workspace_config_file

_workspace_config_file = """./.excore.toml"""

🅰 _registry_cache_file

_registry_cache_file = """registry_cache.pkl"""

🅰 _json_schema_file

_json_schema_file = """excore_schema.json"""

🅰 _class_mapping_file

_class_mapping_file = """class_mapping.json"""

🅰 workspace

workspace = _WorkspaceConfig()
LOGO
LOGO = """
▓█████ ▒██ ██▒ ▄████▄ ▒█████ ██▀███ ▓█████
▓█ ▀ ▒▒ █ █ ▒░▒██▀ ▀█ ▒██▒ ██▒▓██ ▒ ██▒▓█ ▀
▒███ ░░ █ ░▒▓█ ▄ ▒██░ ██▒▓██ ░▄█ ▒▒███
▒▓█ ▄ ░ █ █ ▒ ▒▓▓▄ ▄██▒▒██ ██░▒██▀▀█▄ ▒▓█ ▄
░▒████▒▒██▒ ▒██▒▒ ▓███▀ ░░ ████▓▒░░██▓ ▒██▒░▒████▒
░░ ▒░ ░▒▒ ░ ░▓ ░░ ░▒ ▒ ░░ ▒░▒░▒░ ░ ▒▓ ░▒▓░░░ ▒░ ░
░ ░ ░░░ ░▒ ░ ░ ▒ ░ ▒ ▒░ ░▒ ░ ▒░ ░ ░ ░
░ ░ ░ ░ ░ ░ ░ ▒ ░░ ░ ░
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░

"""

Classes

🅲 _WorkspaceConfig

_WorkspaceConfig
@dataclass
class _WorkspaceConfig:
name: str = field(default="")
src_dir: str = field(default="")
base_dir: str = field(default="")
cache_base_dir: str = field(default=osp.expanduser("~/.cache/excore/"))
cache_dir: str = field(default="")
registry_cache_file: str = field(default="")
json_schema_file: str = field(default="")
class_mapping_file: str = field(default="")
registries: list[str] = field(default_factory=list)
primary_fields: list[str] = field(default_factory=list)
primary_to_registry: dict[str, str] = field(default_factory=dict)
json_schema_fields: dict[str, str | list[str]] = field(default_factory=dict)
props: dict[Any, Any] = field(default_factory=dict)
excore_validate: bool = field(default=True)
excore_manual_set: bool = field(default=True)
excore_log_build_message: bool = field(default=False)

🅼 base_name

@property
def base_name(self):
return osp.split(self.cache_dir)[-1]

🅼 __post_init__

__post_init__
def __post_init__(self) -> None:
if not osp.exists(_workspace_config_file):
self.base_dir = os.getcwd()
self.cache_dir = self._get_cache_dir()
self.registry_cache_file = osp.join(
self.cache_dir, _registry_cache_file
)
self.json_schema_file = osp.join(self.cache_dir, _json_schema_file)
self.class_mapping_file = osp.join(self.cache_dir, _class_mapping_file)
logger.warning("Please use `excore init` in your command line first")
else:
self.update(toml.load(_workspace_config_file))
if os.environ.get("EXCORE_VALIDATE", "1") == "0":
self.excore_validate = False
if os.environ.get("EXCORE_LOG_BUILD_MESSAGE", "0") == "1":
self.excore_log_build_message = True
if os.environ.get("EXCORE_MANUAL_SET", "1") == "0":
self.excore_manual_set = False

🅼 _get_cache_dir

def _get_cache_dir(self) -> str:
base_name = osp.basename(osp.normpath(os.getcwd()))
base_name = self._update_name(base_name)
return osp.join(self.cache_base_dir, base_name)

🅼 _update_name

_update_name
def _update_name(self, base_name: str) -> str:
name = base_name
suffix = 1
while osp.exists(osp.join(self.cache_base_dir, name)):
name = f"{base_name}_{suffix}"
suffix += 1
return name

🅼 update

def update(self, _cfg: dict[Any, Any]) -> None:

🅼 dump

def dump(self, path: str) -> None:
with open(path, "w") as f:
cfg = self.__dict__
cfg.pop("base_dir", None)
toml.dump(cfg, f)