mirror of
https://github.com/RGBCube/CSAssignments
synced 2025-06-21 21:42:09 +00:00
Oops
This commit is contained in:
parent
df3ebcd560
commit
57f4be66d2
20 changed files with 322 additions and 1681 deletions
33
interactive_runner/sources.py
Normal file
33
interactive_runner/sources.py
Normal file
|
@ -0,0 +1,33 @@
|
|||
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
|
Loading…
Add table
Add a link
Reference in a new issue