# AUTOGENERATED! DO NOT EDIT! File to edit: ../../pts/mod/const.pct.py.

# %% auto 0
__all__ = ['pkg_path', 'DEFAULT_CONFIG_PATH', 'DEFAULT_DATA_PATH', 'DEFAULT_USER_REPOS_PATH', 'DEFAULT_USER_REPO_GROUPS_PATH',
           'SYNC_RECORDS_REL_PATH', 'REMOTE_REPOS_REL_PATH', 'REMOTE_BACKUP_REL_PATH', 'REPO_METAFILE_REL_PATH',
           'REPO_CONF_REL_PATH', 'REPO_DATA_REL_PATH', 'SOFT_INTERRUPT_COUNT', 'DEFAULT_FAKE_STORE_REL_PATH',
           'DEFAULT_RCLONE_EXCLUDE', 'REPO_TIMESTAMP_FORMAT', 'REPO_TIMESTAMP_FORMAT_DATE_ONLY',
           'DEFAULT_REPO_SUBID_CHARACTER_SET', 'DEFAULT_REPO_SUBID_LENGTH', 'DEFAULT_MAX_CONCURRENT_RCLONE_OPS',
           'ENV_VAR_REPOYARD_CONFIG_PATH', 'StrictModel']

# %% ../../pts/mod/const.pct.py 3
from pathlib import Path
import inspect
import string
from pydantic import BaseModel, ConfigDict
import repoyard as proj

# %% ../../pts/mod/const.pct.py 4
pkg_path = Path(proj.__file__).parent

# %% ../../pts/mod/const.pct.py 6
DEFAULT_CONFIG_PATH = Path("~") / ".config" / "repoyard" / "config.toml"
DEFAULT_DATA_PATH = Path("~") / ".repoyard"
DEFAULT_USER_REPOS_PATH = Path("~") / "repos"
DEFAULT_USER_REPO_GROUPS_PATH = Path("~") / "repo-groups"

SYNC_RECORDS_REL_PATH = "sync_records"
REMOTE_REPOS_REL_PATH = "repos"
REMOTE_BACKUP_REL_PATH = "sync_backups"

REPO_METAFILE_REL_PATH = "repometa.toml"
REPO_CONF_REL_PATH = "conf"
REPO_DATA_REL_PATH = "data"

SOFT_INTERRUPT_COUNT = 3

DEFAULT_FAKE_STORE_REL_PATH = "fake_store"

# %% ../../pts/mod/const.pct.py 8
DEFAULT_RCLONE_EXCLUDE = inspect.cleandoc("""
.venv/
.pixi/
.trunk/
node_modules/
__pycache__/

.DS_Store
""")

REPO_TIMESTAMP_FORMAT = "%Y%m%d_%H%M%S"
REPO_TIMESTAMP_FORMAT_DATE_ONLY = "%Y%m%d"
DEFAULT_REPO_SUBID_CHARACTER_SET = string.ascii_lowercase + string.ascii_uppercase + string.digits
DEFAULT_REPO_SUBID_LENGTH = 5

DEFAULT_MAX_CONCURRENT_RCLONE_OPS = 10

# %% ../../pts/mod/const.pct.py 10
ENV_VAR_REPOYARD_CONFIG_PATH = "REPOYARD_CONFIG_PATH"

# %% ../../pts/mod/const.pct.py 12
class StrictModel(BaseModel):
    model_config = ConfigDict(extra="forbid")
