Implemented AbobaConfig

This commit is contained in:
MaXFeeD
2025-06-05 20:51:46 +03:00
parent ce20d5e561
commit c19f020698
2 changed files with 61 additions and 0 deletions
+33
View File
@@ -215,6 +215,39 @@ def run(argv: Optional[list[str]] = None):
startup_millis = time() - startup_millis
debug(f"* Tasks successfully completed in {startup_millis:.2f}s!")
from .language import AbobaConfig
project_config = AbobaConfig("1")
graph = ProjectGraph(project_config)
node1 = graph.obtain_edge(project_config)
node2 = graph.obtain_edge(AbobaConfig("2"))
node1.dependencies.append(node2)
node3 = graph.obtain_edge(AbobaConfig("3"))
node2.dependencies.append(node3)
node4 = graph.obtain_edge(AbobaConfig("4"))
node3.dependencies.append(node4)
node4.dependencies.append(node2)
node5 = graph.obtain_edge(AbobaConfig("5"))
node1.dependencies.append(node5)
node6 = graph.obtain_edge(AbobaConfig("6"))
node5.dependencies.append(node6)
node6.dependencies.append(node3)
node7 = graph.obtain_edge(AbobaConfig("7"))
node6.dependencies.append(node7)
node8 = graph.obtain_edge(AbobaConfig("8"))
node1.dependencies.append(node8)
node6.dependencies.append(node8)
print(f"Node 1: {graph.get_cross_references(node1)}")
print(f"Node 2: {graph.get_cross_references(node2)}")
print(f"Node 3: {graph.get_cross_references(node3)}")
print(f"Node 4: {graph.get_cross_references(node4)}")
print(f"Node 5: {graph.get_cross_references(node5)}")
print(f"Node 6: {graph.get_cross_references(node6)}")
print(f"Node 7: {graph.get_cross_references(node7)}")
print(f"Node 8: {graph.get_cross_references(node8)}")
print(f"Cross references: {graph.get_cross_references()}")
def run_test():
import asyncio
from itertools import cycle
+28
View File
@@ -387,3 +387,31 @@ class MakeDataConfig(FileConfig, metaclass=ABCMeta):
continue
from . import GLOBALS
return config_type(config_file, defaults=GLOBALS.TOOLCHAIN_CONFIG)
class AbobaConfig(MakeDataConfig):
def __init__(self, key: str) -> None:
from . import GLOBALS
if not isfile(GLOBALS.TOOLCHAIN_CONFIG.path):
from os import makedirs
from os.path import dirname
makedirs(dirname(GLOBALS.TOOLCHAIN_CONFIG.path))
with open(GLOBALS.TOOLCHAIN_CONFIG.path, "x") as file:
file.write("{}")
super().__init__(GLOBALS.TOOLCHAIN_CONFIG.path, GLOBALS.TOOLCHAIN_CONFIG)
self.key = key
def __hash__(self):
return hash(frozenset(self)) ^ hash(self.key)
@property
def is_pack(self) -> bool:
return False
def iterate_dependencies(self) -> Iterable[Union['MakeDataConfig', 'Artifact']]:
return []
def obtain_project_data(self) -> Optional[Union[MakeModData, MakePackData]]:
pass
def iterate_assets(self) -> Iterable[MakeAssetData]:
return []