File size: 931 Bytes
c10636a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from __future__ import annotations

from eviscene.environment import get_env

from dataclasses import dataclass
from datetime import date, datetime
from typing import Dict


@dataclass
class SystemClockClient:
    def now(self) -> Dict[str, str]:
        current = datetime.now().astimezone()
        override = get_env("EVISCENE_RUNTIME_DATE", "").strip()
        if override:
            runtime_date = date.fromisoformat(override)
            current = current.replace(
                year=runtime_date.year,
                month=runtime_date.month,
                day=runtime_date.day,
            )
        return {
            "current_date": current.date().isoformat(),
            "current_datetime": current.isoformat(),
            "timezone": str(current.tzinfo),
            "source": (
                "runtime_date_override"
                if override
                else "system_clock"
            ),
        }