1
Fork 0
mirror of https://github.com/RGBCube/CSAssignments synced 2025-06-21 13:32:10 +00:00
CSAssignments/interactive_runner/sources.py
2022-11-05 21:16:42 +03:00

35 lines
775 B
Python

from __future__ import annotations
__all__ = ("Sources",)
from functools import cached_property
from typing import TYPE_CHECKING
from .constants import ROOT
from .language import Language
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:
"""TODO"""