Files
itc_projects/mpstwm/under_construction.py

59 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

'''
MPSTWM
Автор: Игорь Рагозин
Лицензия: MIT(подробнее в /LICENSE)
'''
from dataclasses import dataclass
'''
Своя реализация парсера конфига Hyprland.
Примерный алгоритм работы, и концепции на основе
идеи рассказал ИИ. Код полностью написан с помощью обычных рук
'''
@dataclass
class ConfigComment:
value: str
line: int
@dataclass
class AirLine:
line: int
@dataclass
class ConfigVariable:
name: str
value: str
line: int
def ParserKeyValue(line):
line = line.strip()
if '=' in line:
key,value=line.split('=', 1)
key = key.strip()
value = value.strip(df)
return key, value
def isBlock(line):
line = line.strip()
if '{' in line:
return True
with open("example_hyprland.conf", "r") as file:
sections=[]
file = file.readlines()
for index, line in enumerate(file):
no_tab = line.strip()
if line.strip().startswith('#'):
comment = lambda value,line: ConfigComment(value,line+1)
sections.append(comment(no_tab,index))
elif not line.strip():
airline = lambda line: AirLine(line+1)
sections.append(airline(index))
elif line.strip().startswith('$'):
value_line = ParserKeyValue(no_tab)
key,value = value_line[0],value_line[1]
variable = lambda name,value,line: ConfigVariable(name,value,line+1)
sections.append(variable(key,value,index))
print(sections)