mirror of
https://github.com/kennethreitz/pydantic.git
synced 2026-06-05 14:50:19 +00:00
24 lines
598 B
Python
24 lines
598 B
Python
from dataclasses import InitVar
|
|
from pathlib import Path
|
|
from typing import Optional
|
|
|
|
from pydantic.dataclasses import dataclass
|
|
|
|
|
|
@dataclass
|
|
class PathData:
|
|
path: Path
|
|
base_path: InitVar[Optional[Path]]
|
|
|
|
def __post_init__(self, base_path):
|
|
print(f'Received path={self.path!r}, base_path={base_path!r}')
|
|
|
|
def __post_init_post_parse__(self, base_path):
|
|
if base_path is not None:
|
|
self.path = base_path / self.path
|
|
|
|
|
|
path_data = PathData('world', base_path='/hello')
|
|
# Received path='world', base_path='/hello'
|
|
assert path_data.path == Path('/hello/world')
|