Coverage for /home/benjarobin/Bootlin/projects/Schneider-Electric-Senux/sbom-cve-check/src/sbom_cve_check/utils/reproducible.py: 93%
15 statements
« prev ^ index » next coverage.py v7.11.1, created at 2025-11-28 15:37 +0100
« prev ^ index » next coverage.py v7.11.1, created at 2025-11-28 15:37 +0100
1# -*- coding: utf-8 -*-
2# SPDX-License-Identifier: GPL-2.0-only
4import os
5from datetime import UTC, datetime
7from .class_utils import Singleton
10class ReproducibleDateTime(metaclass=Singleton):
11 def __init__(self) -> None:
12 self._now = self._get_now()
14 @staticmethod
15 def _get_now() -> datetime:
16 src_date_epoch = os.environ.get("SOURCE_DATE_EPOCH")
17 if src_date_epoch is not None:
18 return datetime.fromtimestamp(int(src_date_epoch), tz=UTC)
19 return datetime.now(UTC)
21 @property
22 def now(self) -> datetime:
23 return self._now