generated from Luis/nextjs-python-web-template
34 lines
771 B
Python
34 lines
771 B
Python
import logging
|
|
from pathlib import Path
|
|
from typing import Any
|
|
|
|
from pydantic import AnyUrl, BaseModel, validator
|
|
from pydantic.tools import parse_obj_as
|
|
|
|
from ..clan_types import validate_path
|
|
from ..dirs import clan_data_dir, clan_flakes_dir
|
|
|
|
DEFAULT_URL = parse_obj_as(AnyUrl, "http://localhost:8000")
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
|
|
class ClanDataPath(BaseModel):
|
|
dest: Path
|
|
|
|
@validator("dest")
|
|
def check_data_path(cls: Any, v: Path) -> Path: # noqa
|
|
return validate_path(clan_data_dir(), v)
|
|
|
|
|
|
class ClanFlakePath(BaseModel):
|
|
dest: Path
|
|
|
|
@validator("dest")
|
|
def check_dest(cls: Any, v: Path) -> Path: # noqa
|
|
return validate_path(clan_flakes_dir(), v)
|
|
|
|
|
|
class FlakeCreateInput(ClanFlakePath):
|
|
url: AnyUrl = DEFAULT_URL
|