feat: Structured Yields (#4489)

Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
This commit is contained in:
Michael Genson
2024-11-20 08:46:27 -06:00
committed by GitHub
parent c8cd68b4f0
commit 327da02fc8
39 changed files with 1018 additions and 551 deletions

View File

@@ -1,4 +1,5 @@
from dataclasses import dataclass, field
from functools import cached_property
from pathlib import Path
from .json_provider import JsonProvider
@@ -10,7 +11,7 @@ class InUseProvider:
locks: int
@dataclass(slots=True)
@dataclass
class ProviderFactory:
directory: Path
fallback_locale: str = "en-US"
@@ -22,6 +23,10 @@ class ProviderFactory:
def fallback_file(self) -> Path:
return self.directory / self.filename_format.format(locale=self.fallback_locale, format="json")
@cached_property
def supported_locales(self) -> list[str]:
return [path.stem for path in self.directory.glob(self.filename_format.format(locale="*", format="json"))]
def _load(self, locale: str) -> JsonProvider:
filename = self.filename_format.format(locale=locale, format="json")
path = self.directory / filename