21 lines
510 B
Python
21 lines
510 B
Python
from datetime import datetime, timezone
|
|
from functools import partial
|
|
|
|
import nanoid
|
|
from pydantic import Field
|
|
|
|
NANOID_ALPHA = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
|
|
|
|
|
|
def get_now() -> datetime:
|
|
"""Get proper timestamp."""
|
|
return datetime.now(tz=timezone.utc)
|
|
|
|
|
|
def get_id() -> str:
|
|
"""Get nanoid."""
|
|
return nanoid.generate(NANOID_ALPHA, 12)
|
|
|
|
|
|
NowField = partial(Field, default_factory=get_now)
|
|
NanoField = partial(Field, default_factory=get_id)
|