1
Fork 0
mirror of https://github.com/RGBCube/CSAssignments synced 2025-06-20 13:02:09 +00:00
CSAssignments/interactive_runner/sources.py
2022-11-05 20:08:37 +03:00

33 lines
778 B
Python

from __future__ import annotations
__all__ = ("Sources",)
from .language import Language
from .consts import ROOT
from functools import cached_property
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from pathlib import Path
class Sources:
__directory: Path
languages: dict[str, Language]
def __init__(self) -> None:
self.__directory = ROOT / "sources"
@cached_property
def languages(self) -> dict[str, Language]:
languages = {}
for language_directory in self.__directory.iterdir():
if not language_directory.is_dir():
continue
languages[language_directory.name] = Language(language_directory)
return languages
def refresh(self) -> None:
del self.languages